_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. Дополнительные сведения см. в разделе Примеры вызова неуправляемого кода.