次の方法で共有


_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 の例を参照してください。

関連項目

プロセスと環境の制御
_beginthread, _beginthreadex