ThreadDetach は、
ThreadCreate または
ThreadCall によって返されたスレッド・ハンドルに関連した資源を解放します。
スレッド・ハンドルは
ThreadDetach によって破壊され、これ以上使うことができません。
ThreadWait と異なり、
ThreadDetach は、スレッドが終了するのを待ちません。そして、スレッドは、独立して実行を継続します。
スレッドが終了すれば、全ての割り当てられた資源は、解放されます。
メモリリークを避けるために、スレッドを終了させる安全な方法は、スレッドが終了する必要があることを常に通知してから、
ThreadDetach が以前に呼び出された場合を除いて、そのスレッドで
ThreadWait を呼び出すことです。
注意:
ThreadDetach は、スレッドハンドルを破壊するため、
ThreadWait はスレッドの終了をチェックできなくなります。さらに、
ThreadWait の使用も予測できなくなります(プログラムがクラッシュする可能性があります)。
ThreadWait と
ThreadDetach は、排他的に使わなければなりません。
しかし、
ミューテックス と
条件変数 は、分離されたスレッドでも使用できます。