例如说:我在另外一个线程中有个阻塞函数在监听。
但是到了某个时候希望在主线程中中止它,怎样做比较好?用TerminateThread好像很不安全,很容易内存泄漏,用什么办法比较好呢?谢谢

解决方案 »

  1.   

    用一个CEvent实例***,另一线程时不时用if(WaitForSingleObject(***.m_hObject,0)==WAIT_OBJECT_0)判断一下,为真就退出函数。主线程要中止它,就用***.SetEvent();
      

  2.   

    www.microsoft.com/msj/0797/multithreading.aspx
      

  3.   

    1,通信,可以用信号,Event,等
    2,强制结束TerminateThread
    3、如果线程内有循环,就用个变量,检测到TRUE就直接RETURN
      

  4.   

    个人认为用Event比较好!
    你可以看看windows核心编程那本书!
      

  5.   

    在该线程中创建一个名为shutdown的事件,在主线程中使该事件受信,该线程检测该事件受信之后,自己关闭就OK了,跟1楼BoXoft的想法一样