|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
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
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
ExitThread
Функция ExitThread заканчивает резьбу.
ПУСТОТА ExitThread(
ВЫХОДНОЙ код DWORD dwExitCode // для этой резьбы );
Параметры
dwExitCode
Определяет выходной код для вызова резьбы. Используйте функцию GetExitCodeThread, чтобы извлекать выходной код резьбы.
Обратные Величины
Эта функция не возвращает величину.
Замечания
ExitThread - предпочтительный метод выхода резьбы. Когда эта функция названа (или явно или возвращавшись из процедуры резьбы), текущая кипа резьбы освобождена и резьба завершается. Вход-точка функции всех приложивший динамическую связь библиотек (DLLs) введены величиной, указывающей, что резьба отделяется из DLL. Если резьба является последней резьбой в процессе когда эта функция названа, процесс резьбы также завершен.
Состояние объекта резьбы становится сигнальным, выпуская любую другую резьбу, которая ждала резьбу, чтобы завершаться. Статус завершения резьбы заменяет с STILL_ACTIVE в величину параметра dwExitCode. Завершение резьбы обязательно не удаляет объект резьбы из операционной системы. Объект резьбы удален когда последняя ручка в резьбу закрыта. ExitProcess, ExitThread, CreateThread, Функции CreateRemoteThread, и процесс, которые начинают (как результат вызова CreateProcess), изданы сериями между друг друга в пределах процесса. Только одно из этих событий могут случиться в пространстве адреса за один раз. Это означает следующее хранилище ограничений:
В течение запуска процесса и программ инициализации DLL, новая резьба может быть создана, но они не начинают выполнение пока инициализация DLL не сделана для процесса. Только один резьба в процессе может быть в инициализации DLL или отделять программу за один раз. ExitProcess НЕ возвращается пока никакая резьба не будет в их инициализации DLL или отделяет программы.
Резьба, которая использует функции из времени прогона библиотек C должно использовать _beginthread и _endthread время прогона C функционирует для управления резьбы а не CreateThread и ExitThread. Невозможнось делать так результатами в небольших течах памяти когда ExitThread назван.
Смотри Также
CreateProcess, CreateRemoteThread, CreateThread, ExitProcess, FreeLibraryAndExitThread, GetExitCodeThread, TerminateThread
|
|
|
|
| |