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()等待一个线程的结束并不是一个好方法。