_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。有关更多信息,请参见 平台调用示例

请参见

参考

处理和环境控件

_beginthread, _beginthreadex