ExitThread
The ExitThread
function ends a thread.
VOID ExitThread(
DWORD dwExitCode |
// exit code for
this thread |
); |
|
Parameters
dwExitCode
Specifies the
exit code for the calling thread. Use the GetExitCodeThread function to retrieve a
thread s exit code.
Return Values
This function
does not return a value.
Remarks
ExitThread is the preferred method of exiting a thread. When
this function is called (either explicitly or by returning from a thread procedure),
the current thread s stack is deallocated and the thread terminates. The
entry-point function of all attached dynamic-link libraries (DLLs) is invoked
with a value indicating that the thread is detaching from the DLL.
If the thread
is the last thread in the process when this function is called, the thread s process is also terminated.
The state of
the thread object becomes signaled, releasing any other threads that had been
waiting for the thread to terminate. The thread s termination status changes from STILL_ACTIVE to the value of the dwExitCode
parameter.
Terminating a
thread does not necessarily remove the thread object from the operating system.
A thread object is deleted when the last handle to the thread is closed.
The ExitProcess
During process startup and DLL
initialization routines, new threads can be created, but they do not begin
execution until DLL initialization is done for the process.
Only one thread in a process can
be in a DLL initialization or detach routine at a time.
ExitProcess does not
return until no threads are in their DLL initialization or detach routines.
A thread that
uses functions from the C run-time libraries should use the _beginthread
and _endthread C run-time functions for thread management rather than CreateThread
and ExitThread. Failure to do so results in small memory leaks when ExitThread
is called.
See Also