This function ends a thread.
At a Glance
Header file: | Winbase.h |
Windows CE versions: | 1.0 and later |
Syntax
VOID ExitThread( DWORD dwExitCode );
Parameters
dwExitCode
[in] Specifies the exit code for the calling thread. Use the GetExitCodeThread function to retrieve a thread’s exit code.
Return Values
None.
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.
If the primary thread calls the ExitThread function, the application exits.
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 ExitThread and CreateThread functions, as well as a process that is starting as the result of a CreateProcess call, are serialized between each other within a process. Only one of these events can happen in an address space at a time. This means the following restrictions hold:
See Also