对于有界面的程序开发,在开发过程中我们常常会面临一个问题,那就是在进行耗时操作时界面不响应,当然我们可以为耗时操作加上一个进度条,这样可以看起来舒服一点,但是对于需要进行多线程处理的耗时操作如实用OMP进行并行运算的时候,这时在OMP的for循环中实用进度条会面临一系列问题,如进度条不运行等,在面临这样的问题的时候我们最简单的想法就是将精度条独立为一个线程进行处理,因为进度条不需要在意精度,只需要表示一个运行过程而已,所以可以重新开辟一个线程进行处理,对于独立一个线程进行进度条处理的方法有很多:http://blog.csdn.net/bizhu12/article/details/6788241参照以上博客,我们可以简单的做出一个进度条线程,然而在我多次实验之后发现这样的方法存在问题:
经过思考以后,我决定对耗时操作开辟一个线程,将耗时操作放在子线程中,这样主线程的界面可以一直响应,进度条的响应并不会由于耗时操作造成阻塞,这样在后台处理的过程中可以做到进度条的响应和耗时数据处理同时进行。然后一直等到耗时操作处理完毕,进度条停止响应,在这里又面临一个问题,如何判断耗时操作处理完毕。对于这个问题由于我采用线程池开辟线程进行处理,在判断过程中直接判断线程池中活跃线程数就可以了解到耗时操作是否处理完成。
处理核心代码如下:
标签: 多线程, 界面与处理分线程进行, 开发
0 Comments:
订阅:
博文评论 (Atom)



