ExitThread

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

CreateProcess, CreateThread, GetExitCodeThread