GetExitCodeThread
2017-09-18 15:22
483 查看
获取指定线程的终止状态
声明:
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)作为错误码,那么测试该值的应用程序会以为线程仍然在运行并在该线程终止后继续测试该线程的结束状态,这将导致该线程进入一个无线循环。
声明:
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)作为错误码,那么测试该值的应用程序会以为线程仍然在运行并在该线程终止后继续测试该线程的结束状态,这将导致该线程进入一个无线循环。
相关文章推荐
- GetExitCodeThread() 和 ExitThread()
- GetExitCodeThread WaitForSingleObject
- GetExitCodeThread(hThread, (PDWORD) &uSum);
- 线程函数GetExitCodeThread和ExitThread
- GetExitCodeThread的返回值与线程的退出无关
- delphi判断线程状态函数(使用GetExitCodeThread API函数去判断线程的句柄)
- 第一篇,第二章 之 GetExitCodeThread()
- GetExitCodeThread(hThrd, &exitCode);WaitForSingleObject(hThrd,INFINITE);
- GetExitCodeThread()
- 使用GetExitCodeThread()关闭线程
- GetExitCodeThread判断线程是否执行完
- 23.[个人]C++线程入门到进阶(23)----线程函数:GetExitCodeThread
- Windows编程--线程之GetExitCodeThread()
- 线程结束,GetExitCodeThread后结束值一直STILL_ACTIVE,259的问题
- Windows API 之 CreateThread、GetExitCodeThread(未完)
- GetExitCodeThread
- 请教GetExitCodeThread函数的作用及参数
- exitcode.c---示范GetExitCodeThread()的用法
- GetExitCodeThread()
- WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread