您的位置:首页 > 其它

Win32多线程之GetExitCodeThread

2013-11-18 21:38 197 查看
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()等待一个线程的结束并不是一个好方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: