_endthread, _endthreadex
停止 _beginthread 或 _beginthreadex创建的线程,分别。
重要
此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。
void _endthread( void );
void _endthreadex(
unsigned retval
);
参数
- retval
线程的退出代码。
备注
可以显式调用 _endthread 或 _endthreadex 终止线程;但是,那么,当线程从作为参数传入的实例返回到 _beginthread 或 _beginthreadex时,_endthread 或 _endthreadex 自动调用。 停止点与调用线程。endthread 或 _endthreadex 有助于确保为线程分配的资源适当的恢复。
备注
对于使用 Libcmt.lib 链接的可执行文件,不要调用 Win32 API; ExitThread 这样可防止该运行时系统恢复已分配的资源。_endthread 和分发 _endthreadex 回收线程资源然后调用 ExitThread。
_endthread 自动关闭线程句柄。 (此行为与 Win32 API ExitThread 不同。)因此,那么,当您使用 _beginthread 和 _endthread时,不要通过调用 Win32 API CloseHandle 显式关闭线程句柄。
与 Win32 ExitThread API,_endthreadex 不关闭线程句柄。 因此,那么,当您使用 _beginthreadex 和 _endthreadex时,必须通过调用 Win32 API CloseHandle 关闭线程处理。
备注
_endthread 和 _endthreadex 在线程导致挂起的 C++ 析构函数不调用。
要求
功能 |
必需的标头 |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
有关更多兼容性信息,请参见中介绍的 兼容性。
库
仅 C 运行库 的多线程版本。
示例
为 _beginthread参见示例。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。