流程1——>流程2——>流程3——>流程4——>流程5    要求:1)每个流程处理的数据量挺大的,预估每隔流程大概得花费几分钟时间,初步打算为每个流程开辟一个线程,根据运行情况,并在界面上显示每个流程运行的进度条。2)用户可以选择全部流程或者其中的几个流程运行,但只能上一个流程运行结束后,才能开始下一个流程。3)界面有暂停和终止按钮,点击终止,正在运行的流程停止运行。  问题:看了好多帖子,终止线程大都用的循环检测,但不适用于该程序,因为每隔流程只运行一遍。不知道该怎么设计线程来实现终止的功能,哪位大侠给点意见a?

解决方案 »

  1.   

    下下策,暴力退出,后果自负。
    每个流程花费几分钟是个神马情况,是有比如recv这种阻塞的函数,还是有很复杂的计算堆积出来,如果是后者是否可以在每个流程里多检测几次
      

  2.   


    每个流程里都是对数据的运算,比方矩阵等的数学计算,暴力不行,关了再开,cpu立马100%。
      

  3.   

    回帖消失了
    CEvent或CMutexWaitForSingleObject来控制
      

  4.   

    直接WaitForSingleObject那个线程的句柄就可以了吧,这样线程退出了就收到通知了
    http://www.vcproj.net/multi-threaded-locate-the-file/
    看看这个例子吧,楼主
      

  5.   

    win32多线程程序设计
    侯先生强调不要使用while循环去循环检测
    用同步控制吧。骚年。
      

  6.   

    要终止线程,设置一个全局的CEvent或CMutex就行了。