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