Export (0) Print
Expand All
div
Expand Minimize

_endthread, _endthreadex

Terminate a thread created by _beginthread or _beginthreadex, respectively.

void _endthread( void );
void _endthreadex( 
   unsigned retval 
);

Parameter

retval
Thread exit code.

Remarks

You can call _endthread or _endthreadex explicitly to terminate a thread; however, _endthread or _endthreadex is called automatically when the thread returns from the routine passed as a parameter to _beginthread or _beginthreadex. Terminating a thread with a call to endthread or _endthreadex helps to ensure proper recovery of resources allocated for the thread.

Note   For an executable file linked with LIBCMT.LIB, do not call the Win32 ExitThread API; this prevents the run-time system from reclaiming allocated resources. _endthread and _endthreadex reclaim allocated thread resources and then call ExitThread.

_endthread automatically closes the thread handle. (This behavior differs from the Win32 ExitThread API.) Therefore, when you use _beginthread and _endthread, do not explicitly close the thread handle by calling the Win32 CloseHandle API.

Like the Win32 ExitThread API, _endthreadex does not close the thread handle. Therefore, when you use _beginthreadex and _endthreadex, you must close the thread handle by calling the Win32 CloseHandle API.

Requirements

Function Required header Compatibility
_endthread <process.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_endthreadex <process.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

Multithreaded versions of the C run-time libraries only.

Example

See the example for _beginthread.

See Also

Process and Environment Control Routines | _beginthread | Run-Time Routines and .NET Framework Equivalents

Show:
© 2014 Microsoft