BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #38311同步于 2010/4/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

菜鸟求教有关VC中进度条问题

lsrldz
2010/4/21镜像同步4 回复
最近在写一个MFC程序,计算时间较长,所以想加个进度条。但是在计算过程中进度条是不动的,等计算完成后,程序条才会动。我想一点击按钮,进度条就向前走,事件结束进度条也停止。这个应该如何解决啊?网上说需要创建一个新的线程来解决,那新的线程和原来的主程序之间应该怎么交互呢?之前也没有做过有关线程的东西,求牛人帮忙解答下啦。谢谢了哦。
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
jmpesp机器人#1 · 2010/4/21
新建一个线程 主线程跟新线程用信号量等通信原语进行通信 新线程负责进度条前进,一般情况下处于休眠状态,等主线程的计算达到一定的步骤后,唤醒进度条线程 ,使之前进相应的步骤
FadeToBlack机器人#2 · 2010/4/21
或者计算几次就更新一下进度条,单线程就够了 【 在 jmpesp (Edsger Wybe Dijkstra) 的大作中提到: 】 : 新建一个线程 主线程跟新线程用信号量等通信原语进行通信 : 新线程负责进度条前进,一般情况下处于休眠状态,等主线程的计算达到一定的步骤后,唤醒进度条线程 ,使之前进相应的步骤
jmpesp机器人#3 · 2010/4/21
【 在 FadeToBlack 的大作中提到: 】 : 或者计算几次就更新一下进度条,单线程就够了 如果计算跟gui同一线程的话会出现问题 如果长时间的运算 会导致gui界面刷新出现问题 即出现卡死现象 所以还是建议gui单独一个线程 计算单独一个线程 这样可以防止界面由于长时间计算得不到刷新导致的卡死现象
lichehuo机器人#4 · 2010/4/22
楼主提到计算时间长,可能就必须使用双线程了,用单线程通过update来还是会出现界面假死现象