曾听说过可以让辅助线程抛出异常的方式中止,那位高手知道麻烦告诉一声。

解决方案 »

  1.   

    用TeminateThread函数不行的,谁也不要用的。
      

  2.   

    比较好的方法是:
    设置一信号灯,如:CMutex ,在主线程想结束另一线程时,就将设置信号灯,而在线程中,
    一但检测到CMutex 被置就自己做好收尾工作后退出执行。
      

  3.   

    设置Mutex的方式的话需要时时在辅助线程中检查mutex的状态,而我的辅线程里面要调用的函数很多,而且每一个函数执行的时间不定,这样做太烦效率也不高。最好能用让辅线程抛出异常的方式中止它。
      

  4.   

    可以在辅助线程里面自己写消息循环,检查WM_QUIT消息,然后在主线程里面调用PostThreadMessage发送WM_QUIT消息,用WaitSingleObject等待返回就行了
      

  5.   

    我正好也碰到了跟楼主一样的问题,共同讨论!
    不过好像danscort2000说的方法不行,在删除辅助线程的指针的指针后,线程还是在继续工作的。
      

  6.   

    不过好像danscort2000说的方法不行,在删除辅助线程的指针的指针后,线程还是在继续工作的。建议再试一下,因为这个方法我是在一本经典的教程里看到的,
    线程被删除后,它的运转就终止了,
    但是应该等一点时间让系统在切换线程的时候才生效