Win32多线程之GetExitCodeThread

BOOL GetExitCodeThread(

    HANDLE hThread, 

   LPDWORD lpExitCode

);

参数

hThread  :由CreateThread()传回的线程handle

lpExitCode:指向一个DWORD, 用以接收结束代码(exit code)


返回值: 如果成功,GetExitCodeThread()传回TRUE,否则传回FALSE,如果失败,你可以调用GetLastError()找出原因,如果线程已经结束,那么线程的结束代码会被放在lpExitCode参数中带回来。如果线程尚未结束,lpExitCode带回来的值是STILL_ACTIVE。

GetExitCodeThread()将传回线程函数的返回值,然而,GetExitCodeThread()的一个糟糕行为是,当线程还在进行,尚未有所谓的结束代码时,它会传回TRUE表示成功。如果这样,lpExitCode指向的内存区域中应该放的是STILL_ACTIVE。你必须小心这种行为,也就是说你不可能从其返回值中知道“到底是线程还在运行呢,还是它已结束,但返回值为“STILL_ACTIVE”。

使用GetExitCodeThread()等待一个线程的结束并不是一个好方法。

  

你可能感兴趣的:(Win32,多线程)