Поделиться через


Функция GetExitCodeThread (processthreadsapi.h)

Извлекает состояние завершения указанного потока.

Синтаксис

BOOL GetExitCodeThread(
  [in]  HANDLE  hThread,
  [out] LPDWORD lpExitCode
);

Параметры

[in] hThread

Дескриптор потока.

Дескриптор должен иметь право доступа к THREAD_QUERY_INFORMATION или THREAD_QUERY_LIMITED_INFORMATION . Дополнительные сведения см. в разделе Безопасность потоков и права доступа.

Windows Server 2003 и Windows XP: Дескриптор должен иметь право доступа к THREAD_QUERY_INFORMATION .

[out] lpExitCode

Указатель на переменную для получения состояния завершения потока. Дополнительные сведения см. в подразделе "Примечания".

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Эта функция возвращает немедленно. Если указанный поток не завершился и функция завершается успешно, возвращается состояние STILL_ACTIVE. Если поток завершился и функция завершилась успешно, возвращается одно из следующих значений:

  • Значение выхода, указанное в функции ExitThread или TerminateThread .
  • Возвращаемое значение из функции потока.
  • Значение выхода процесса потока.
Важно Функция GetExitCodeThread возвращает допустимый код ошибки, определенный приложением, только после завершения потока. Поэтому приложение не должно использовать STILL_ACTIVE (259) в качестве кода ошибки. Если поток возвращает STILL_ACTIVE (259) в виде кода ошибки, приложения, которые проверяют это значение, могут интерпретировать его как означать, что поток по-прежнему выполняется и продолжает тестировать завершение потока после завершения потока, что может привести к бесконечному циклу. Чтобы избежать этой проблемы, вызывающие абоненты должны вызывать функцию GetExitCodeThread только после подтверждения выхода потока из потока. Используйте функцию WaitForSingleObject с нулевой длительностью ожидания, чтобы определить, завершился ли поток.
 
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

См. также раздел

ExitThread

GetExitCodeProcess

OpenThread

Функции процессов и потоков

TerminateThread

Завершение потока