这里有线程aThread
DWORD WINAPI aThread(LPVOID lpParam)
{
...
    CreateThread(...,bThread,...);
...
}
请问,如何CreateThread(),才能使线程A结束的时候线程B自动结束呢?谢谢了,我使菜鸟

解决方案 »

  1.   

    不能想你说的那样,应该在主线程中关闭,或者在在线程B关闭之前
    发送PostMessage()方法!!
      

  2.   

    to jia20003(我水平不行的) :
    按照你说的,假设HANDLE b=CreateThread(...,bThread,.....);
    是否用closehandle(b);就可以关闭线程B了呢?
      

  3.   

    不行,CloseHandle(b)只是释放对线程的引用,也就是对线程的引用计数减1。但是线程还是单独运行直到结束为止。不过还是应该调用它来释放资源是个好习惯,毕竟Windows里面资源是有限的。用你在A结束之前调用GetExitCodeThread()来得到线程b的运行状态,如果STILL_ACTIVE,则调用TerminateThread()来结束它。
    如果它已经结束就不用管它了。
      

  4.   

    使用全局变量g_bExit = FALSE;
    b线程当中检查此变量状态g_bExit==TURE;
    就return;在A线程结束前设置g_bExit = TRUE;
    等待b线程结束。