|
Overview |
|
|
|
Group |
|
|
|
Quick Info
Windows NT
| Yes
| Win95
| Yes
| Win32s
| Yes
| Import Library
| kernel32.lib
| Header File
| winbase.h
| Unicode
| No
| Platform Notes
| None
|
|
|
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, ExitThread, CreateThread, CreateRemoteThread functions, and 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:
- 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
CreateProcess, CreateRemoteThread, CreateThread, ExitProcess, FreeLibraryAndExitThread, GetExitCodeThread, TerminateThread
Related Links
Software for Delphi and C++ Builder developers
Software for Visual Studio .NET developers
Software for Visual Basic 6 developers
Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps
Win32 Multimedia Programmer's Reference (mmedia.hlp)
OLE Programmer's Reference (ole.hlp)
Microsoft Windows Pen API Programmer's Reference (penapi.hlp)
Microsoft Windows Sockets 2 Reference (sock2.hlp)
Microsoft Windows Telephony API (TAPI) Programmer's Reference (tapi.hlp)
Unix Manual Pages
|