%>
终止线程;_endthread
终止由 _beginthread
创建的线程,_endthreadex
终止由 _beginthreadex
创建的线程。
语法
void _endthread( void );
void _endthreadex(
unsigned retval
);
参数
retval
线程退出代码。
注解
可以显式调用 _endthread
或 _endthreadex
终止线程;但是,当线程从作为 _endthread
或 _endthreadex
参数传递的例程中返回时,会自动调用 _beginthread
或 _beginthreadex
。 通过对 endthread
或 _endthreadex
的调用来终止线程有助于确保适当恢复为线程分配的资源。
注意
对于与 Libcmt.lib 链接的可执行文件,请不要调用 Win32 ExitThread
API;这将阻止运行时系统回收已分配的资源。 _endthread
和 _endthreadex
回收分配的线程资源,然后调用 ExitThread
。
_endthread
会自动关闭线程句柄。 (此行为不同于 Win32 ExitThread
API。)因此,在使用 _beginthread
和 _endthread
时,请勿通过调用 Win32 CloseHandle
API 来显式关闭线程句柄。
与 Win32 ExitThread
API 相同,_endthreadex
不会关闭线程句柄。 因此,当你使用 _beginthreadex
和 _endthreadex
时,必须通过调用 Win32 CloseHandle
API 来关闭线程句柄。
注意
_endthread
和 _endthreadex
会导致 C++ 析构函数在不会调用的线程中处于挂起状态。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
函数 | 必需的标头 |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
有关兼容性的详细信息,请参阅 兼容性。
库
仅限 C 运行库 的多线程版本。
示例
请参阅 _beginthread
的示例。
另请参阅
进程和环境控制
%>