Функция ExitThread (processthreadsapi.h)
Завершает вызывающий поток.
Синтаксис
void ExitThread(
[in] DWORD dwExitCode
);
Параметры
[in] dwExitCode
Код выхода для потока.
Возвращаемое значение
None
Remarks
ExitThread является предпочтительным методом выхода из потока в коде C. Однако в коде C++ поток завершается до вызова деструкторов или выполнения любой другой автоматической очистки. Поэтому в коде C++ следует возвращать данные из функции потока.
При вызове этой функции (явным образом или путем возврата из процедуры потока) стек текущего потока освобождается, все ожидающие операции ввода-вывода, инициированные потоком, который не связан с портом завершения, отменяется, а поток завершается. Функция точки входа всех присоединенных библиотек динамической компоновки (DLL) вызывается со значением, указывающим, что поток отсоединяется от библиотеки DLL.
Если поток является последним потоком в процессе при вызове этой функции, процесс потока также завершается.
Состояние объекта потока становится сигнальным, освобождая все другие потоки, ожидавшие завершения потока. Состояние завершения потока изменяется с STILL_ACTIVE на значение параметра dwExitCode .
Завершение потока не обязательно удаляет объект потока из операционной системы. Объект потока удаляется при закрытии последнего дескриптора потока.
Функции ExitProcess, ExitThread, CreateThread, CreateRemoteThread и процесс, который запускается (в результате вызова CreateProcess ), сериализуются друг между другом в рамках процесса. Только одно из этих событий может происходить в адресном пространстве одновременно. Это означает, что удерживают следующие ограничения:
- Во время запуска процесса и процедур инициализации DLL можно создавать новые потоки, но они не начинают выполнение, пока не будет выполнена инициализация DLL для процесса.
- В процедуре инициализации или отсоединения DLL одновременно может находиться только один поток в процессе.
- ExitProcess не возвращается до тех пор, пока потоки не находятся в подпрограммах инициализации dll или отсоединения.
Используйте функцию GetExitCodeThread для получения кода выхода потока.
Windows Phone 8.1. Эта функция поддерживается для приложений магазина Windows Phone в Windows Phone 8.1 и более поздних версиях.
Windows 8.1 и Windows Server 2012 R2: эта функция поддерживается для приложений Магазина Windows на Windows 8.1, Windows Server 2012 R2 и более поздних версий.
Примеры
Пример см. в разделе Использование объектов событий.
Требования
Минимальная версия клиента | Windows XP [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2003 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | processthreadsapi.h (включая Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2) |
Библиотека | Kernel32.lib; WindowsPhoneCore.lib в Windows Phone 8.1 |
DLL | Kernel32.dll; KernelBase.dll Windows Phone 8.1 |