次の方法で共有


_endthread、_endthreadex

更新 : 2007 年 11 月

_endthread は _beginthread によって作成されたスレッドを終了し、_endthreadex は _beginthreadex によって作成されたスレッドを終了します。

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

パラメータ

  • retval
    スレッド終了コード。

解説

_endthread または _endthreadex を明示的に呼び出すと、スレッドを終了できます。ただし _endthread または _endthreadex は、_beginthread や _beginthreadex のパラメータとして渡されたルーチンからスレッドが戻ると自動的に呼び出されます。endthread または _endthreadex を呼び出してスレッドを終了すると、スレッドに割り当てられていたリソースを確実に解放できます。

hw264s73.alert_note(ja-jp,VS.90).gifメモ :

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 を呼び出すことによってスレッド ハンドルを閉じる必要があります。

hw264s73.alert_note(ja-jp,VS.90).gifメモ :

_endthread と _endthreadex によって、C++ デストラクタはスレッドで保留状態になり、呼び出されません。

必要条件

関数

必須ヘッダー

_endthread

<process.h>

_endthreadex

<process.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのマルチスレッド バージョンのみ。

使用例

_beginthread」の例を参照してください。

.NET Framework の相当するアイテム

適用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

参照

プロセス制御と環境制御

_beginthread、_beginthreadex