我这里有一个程序,主线程就叫A吧,是基于FormView的。当点一个按钮的时候它要执行一个很大的程序块,这个时候要单开一个线程B来执行这个大的程序块。但是我现在想加上一个进度条,那么我这个进度条是不是要单开一个线程C的?如果要加那么这个线程C应该写在哪里,是写在我那个大的程序块里吗?还是写在主线程A里?是不是要用用户界面线程的?因为是第一次写多线程,不太会安排线程的位置,希望能够有人给我说明一下,我要实现这样的功能应该如何去安排线程的分布。而且我进度条要知道程序块执行到哪里了,要根据执行的速度来显示进度,并且当程序块因为各种原因跳出时,我的进度条也应该随之关闭。就是这样的功能,希望大家给解答一下。

解决方案 »

  1.   

    进度条放在主线程中就可以了。有很多方法可以实现进度条功能。
    1.可以设置一个全局或类静态变量,表示当前的进度,线程B执行中不断地修正进度变量,主线程定时读取该变量
    2.线程B没执行一定阶段时,通过PostThreadMessage向主线程回报当前的进度,主线程定义一个消息响应函数来更改进度条的状态
      

  2.   

    我的进度条是不是要用到OnTimer的
      

  3.   

    在FormView的对话框里放个进度条控件不行吗?
    自定义一个消息,当需要更新进度条时,辅助线程给主线程(View类)发消息,主线程响应消息更新进度条。如果你要弹出一个进度条对话框也以直接使用VC自带的组件