スレッド停止(シグナル状態)の検知


環境はBorland C++ Builder 5です。
超初心者な内容ですが、とりあえずメモっときます。
正しいかどうかは保証しないので
曖昧な表現で書いていますw


スレッドの停止を検知するには
WaitForSingleObjectという関数を使うらしい。
複数スレッドの停止を検知するには
WaitForMultipleObjectsの方を)
オブジェクトの中身はこんな感じらしい。

DWORD WaitForSingleObject(
  HANDLE hHandle,        // オブジェクトのハンドル
  DWORD dwMilliseconds   // タイムアウト時間
);


パラメータは以下のように指定するのか、なるほど。

・オブジェクトのハンドル
オブジェクトのハンドルを指定、そのままです。

・タイムアウト時間
ミリ秒(ms):タイムアウト時間が経過すると制御が戻る。
0         :江戸っ子か関西人風に即座に制御を返すようです。
           「せっかち」または「いらち」と呼ばれます。
INFINITE  :片思いの恋愛のように永遠と待ち続けるようです。
           なんだか胸が締め付けられる思いです。


戻り値は以下のどれかになるようです。
ちなみにスレッドが終了している状態=シグナル状態。

WAIT_ABANDONED:放棄されたMutexオブジェクトでした。
               (あるスレッドが所有権を解放しないで終了)
               これ見て「商品の取り置き希望の客が
               ずーっと受け取りに来ない」
               学生時代のバイト経験を
               思い出したけどそんな感じでいいのか?
WAIT_OBJECT_0 :指定したオブジェクトがシグナル状態になった!
WAIT_TIMEOUT  :タイムアウト時間が経過したけど
               まだシグナル状態じゃないよー、と。
WAIT_FAILED   :関数自体の呼び出し失敗。残念。


実際のコードは…ないです。