获取指定线程的终止状态
声明:
BOOL WINAPI GetExitCodeThread(
_In_ HANDLE hThread,
_Out_ LPDWORD lpExitCode
);
参数:
_In_ HANDLE hThread
需要获取终止状态的线程句柄
_Out_ LPDWORD lpExitCode
是一个指针,该指针用来存储线程终止状态的变量
返回值:
若函数执行成功,则返回值为非0;反之,返回值为0,使用GetLastError获取错误信息
备注:
该函数是立即返回的。若指定线程没有终止且函数执行成功,则返回状态为STILL_ACTIVE。若线程已经终止且函数执行成功,则状态返回为以下之一:
1.函数ExitThread或TerminateThread中指定的退出值
2.从线程函数返回的值
3.线程的进程的退出值
重要:GetExitCodeThread函数在线程终止后,返回由应用程序定义的错误码。因此,应用程序不应该使用STILL_ACTIVE(259)作为错误码。若一个线程将返回STILL_ACTIVE(259)作为错误码,那么测试该值的应用程序会以为线程仍然在运行并在该线程终止后继续测试该线程的结束状态,这将导致该线程进入一个无线循环。