我在主线程中,
CWinThread* pNewThread=AfxBeginThread(ConnectWithClient,0);然后我要在适当的时候在主线程中通过pNewThread,将这个线程结束掉,该怎么办?CWinThread类中好象没找到这样的函数,不知该怎么实现?

解决方案 »

  1.   

    TerminateThread(pNewThread->m_hThread,0);
      

  2.   

    1:如果在主线程中可以通知线程pNewThread,那么可以采用zhang920171() 的方法,调用AfxEndThread(0,TRUE)去关闭该线程,这部分代码要写在函数ConnectWithClient内,主线程需要通过消息或事件等机制去通知ConnectWithClient线程;2:在主线程里(pNewThread外)关闭线程,可以采用 vcforever(霓裳羽衣) 的方法,TerminateThread(pNewThread->m_hThread,0),但要注意资源的有效释放,防止内存泄露。
      

  3.   

    to: comman_wang(一加一)谢谢你的解释!
    但我还想问你,你在第二点里说的"但要注意资源的有效释放,防止内存泄露。"是什么意思?要释放什么资源呢?如果在子线程中没有自己new 出现的东西就不用释放了吧?