赞助

VC++ 进度条更新方案

在实际开发中,如果有耗时操作,一般会在工作线程处理数据,然后处理完成后把时间传递到UI线程进行显示,切记不要在工作线程对UI进行操作。

场景:

1. 很多程序需要根据处理业务的进度来更新进度条,进度条的目的是让用户能知道业务处理的进度,有进度条的程序更友好,让用户知道程序在运行,而不是没有响应。

2. 现在更新进度条的见过两种方法,一种是通过事件(信号,队列)的发送让主线程按照发送的顺序来更新进度条,一种是设置一个全局整形变量,

通过运行定时器的方式来更新进度条。第一种不适合在更新频率比较高的地方(比如多线程下载文件),比如一秒钟发送了20个事件,这样会造成主线程忙于处理事件界面出现假死状态。

所以最好的办法就是使用第2种通过定时器更新进度条,设置一个合理的值,比如500毫秒这样既能看到更新的进度,也不会让主线程过于忙。

posted @ 2017-08-03 17:36  车臣  阅读(727)  评论(0编辑  收藏  举报