- 319 名前:315 mailto:sage [2007/05/19(土) 00:12:44 ]
- >>317
長い答え: ヘルプに書いてある筈だが、_beginthread()で開始したスレッドは 自分が終了する時に自分でCloseHandle()を呼び出してスレッドハンドルを 破棄する。言い換えると、_beginthread()で開始したスレッドのハンドルが いつ無効になるか外からは全く分からないので、スレッドのハンドルを 外から何らかの形で使いたいのなら、必ず_beginthreadex()を使え。 _beginthreadex()で開始したスレッドは自分でCloseHandle()を 呼び出さないので、リークを避けたければ誰かが責任を持って代わりに 呼び出してやる必要がある。つまりWaitForMultipleObjects()などを使って 終了を待ち、その後CloseHandle()を呼ぶ必要があるってことだ。 TerminateThread()した場合も同様だな。
|

|