<Return[E]><Top>

ExitThread

Declare Sub Api_ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode&)

Declare Sub ExitThread Lib "kernel32" (ByVal dwExitCode As Long)

1 つのスレッドを終了させる。

パラメータ
dwExitCode
    関数が対象とするスレッドの終了コードを指定する。スレッドの終了コードを取得するには、GetExitCodeThread 関数を使う。
 

戻り値
    戻り値はない。

解説
    スレッドを終了するには、ExitThread 関数を使うのが好ましい方法である。

    この関数を呼び出すと(開発者が明示的に呼び出すか、スレッドプロシージャが制御を返す際に自動的に呼び出す)、現在のスレッドのス

    タックは割り当てを解除され、そのスレッドは終了する。

    そのスレッドにアタッチしているすべての DLL の各エントリポイント関数は、終了コードを受け取って、そのスレッドが DLL からデタッチされて

    いることを通知される。
    呼び出し側のスレッドが、プロセス内の最後のスレッドだった場合は、そのプロセスも自動的に終了する。
    スレッドが終了するとき、スレッドオブジェクトはシグナル状態になり、そのスレッドの終了を待っていた他のすべてのスレッドの条件を満たする

  (待機状態から解放する)。スレッドの終了ステータスは、STILL_ACTIVE から、dwExitCode パラメータで指定した値へ変化する。
    スレッドを終了させても、必ずしもそれに対応するスレッドオブジェクトがシステムから削除されるわけではない。

    スレッドに 1 つまたは複数のハンドルが割り当てられている場合、最後のハンドルを閉じると、スレッドオブジェクトが自動的に削除される。