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


_endthread, _endthreadex

Завершает поток; _endthread завершает поток, созданный _beginthread, а _endthreadex завершает поток, созданный _beginthreadex.

Важно!

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT, которые не поддерживаются с ключом /ZW.

void _endthread( void ); void _endthreadex(     unsigned retval  );

Параметры

  • retval
    Код выхода потока.

Заметки

Можно явно вызвать _endthread или _endthreadex, чтобы завершить поток; однако _endthread или _endthreadex вызываются автоматически при возврате из подпрограммы потока, переданного в качестве параметра в _beginthread или _beginthreadex. Завершение потока вызовом функции endthread или _endthreadex помогает обеспечить правильное восстановление ресурсов, выделяемых для потока.

Примечание

Для получения исполняемого файла, связанного с библиотекой Libcmt.lib, не вызывайте API Win32 ExitThread — это помешает системе среды выполнения освободить выделенные ресурсы._endthread и _endthreadex освобождают выделенные ресурсы потока и затем вызывают метод ExitThread.

_endthread автоматически закрывает дескриптор потока. (Это поведение отличается от API Win32 ExitThread.) Поэтому при использовании _beginthread и _endthread не следует явно закрывать дескриптор потока вызовом API Win32 CloseHandle.

Аналогично API Win32 ExitThread, _endthreadex не закрывает дескриптор потока. Поэтому при использовании _beginthreadex и _endthreadex необходимо закрыть дескриптор потока, вызвав API Win32 CloseHandle.

Примечание

_endthread и _endthreadex блокируют вызов деструкторов C++, ожидающих в потоке.

Требования

Функция

Обязательный заголовок

_endthread

<process.h>

_endthreadex

<process.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Только многопоточные версии библиотек времени выполнения языка C.

Пример

См. пример для _beginthread.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызова неуправляемого кода.

См. также

Ссылки

Управление процессами и средой

_beginthread, _beginthreadex