中国足球进世界杯

_endthread, _endthreadex的调用_随笔

void _endthread( void );

void _endthreadex( unsigned retval );

参数:

retval( 线程的退出码)

功能

必需的标头

_endthread

_endthreadex

_endthread, _endthreadex分别停止 _beginthread 或 _beginthreadex创建的线程,

备注

可以显式调用 _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++ 析构函数不调用。