_endthread
, _endthreadex
終止線程; _endthread
會終止 由 _beginthread
建立的線程,並 _endthreadex
終止 由 _beginthreadex
所建立的線程。
語法
void _endthread( void );
void _endthreadex(
unsigned retval
);
參數
retval
執行緒結束代碼。
備註
您可以明確地呼叫 _endthread
或 _endthreadex
來終止執行緒。不過,當執行緒從作為參數傳遞至 _endthread
或 _endthreadex
的常式傳回時,也會自動呼叫 _beginthread
或 _beginthreadex
。 透過呼叫 endthread
或 _endthreadex
終止執行緒,有助於確保適當復原配置給執行緒的資源。
注意
對於與 Libcmt.lib 連結的可執行檔,請勿呼叫 Win32 ExitThread
API;這可防止運行時間系統回收已配置的資源。 _endthread
和 _endthreadex
會回收配置的執行緒資源,然後呼叫 ExitThread
。
_endthread
會自動關閉執行緒控制代碼 (此行為與 Win32 ExitThread
不同API.)因此,當您使用 _beginthread
和 _endthread
時,請勿藉由呼叫 Win32 CloseHandle
API 明確關閉線程句柄。
如同 Win32 ExitThread
API, _endthreadex
不會關閉線程句柄。 因此,當您使用 _beginthreadex
和 _endthreadex
時,您必須呼叫 Win32 CloseHandle
API,以關閉執行緒控制代碼。
注意
_endthread
和 _endthreadex
會導致在執行緒中暫止的 C++ 解構函式不會被呼叫。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
函式 | 必要的標頭 |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
如需相容性詳細資訊,請參閱相容性。
程式庫
僅限 C 執行階段程式庫 的多執行緒版本。
範例
請參閱 _beginthread
的範例。