我用主线程创建两个线程。一个A,一个B,优先级一样!
现在我想在B中结束A,我这样做:
   ExitThread(GetExitCodeThread(g_handle , lpExitCode)) ;
   //其中g_handle是A的线程句柄!
我这样用怎么老是出现异常,也找不到原因??
是什么原因?大家说下,谢谢!!!

解决方案 »

  1.   

    ExitThread是结束当前所在的线程,类似于c runtime函数,而不是结束另一个线程
      

  2.   

    GetExitCodeThread是获取已结束线程的状态,如果线程尚未结束,则返回STILL_ALIVE
    结束其他线程可以用TerminateThread:
    BOOL TerminateThread(HANDLE hThread, DWORD dwExitCode);
    不过,不建议用,不能干净的结束一个线程
    建议用Event等激发事件,让需要结束的线程收到消息后自动清理资源自己结束