_endthread
, _endthreadex
スレッドを終了します。_endthread
は、_beginthread
によって作成されたスレッドを終了し、_endthreadex
は、_beginthreadex
によって作成されたスレッドを終了します。
構文
void _endthread( void );
void _endthreadex(
unsigned retval
);
パラメーター
retval
スレッド終了コード。
解説
_endthread
または _endthreadex
を明示的に呼び出してスレッドを終了できます。ただし、 _endthread
または _endthreadex
は、 _beginthread
または _beginthreadex
にパラメーターとして渡されたルーチンからスレッドが戻ると自動的に呼び出されます。 endthread
または _endthreadex
を呼び出してスレッドを終了すると、スレッドに割り当てられていたリソースを確実に解放できます。
Note
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 を呼び出してスレッド ハンドルを終了する必要があります。
Note
_endthread
と _endthreadex
により、スレッドで待機中の C++ デストラクターは呼び出されなくなります。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
要件
機能 | 必須ヘッダー |
---|---|
_endthread |
<process.h> |
_endthreadex |
<process.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ
C ランタイム ライブラリ のマルチスレッド バージョンのみ。
例
_beginthread
の例を参照してください。