クリーンアップ コードの書き方
スレッドの実行が終了したときにクリーンアップを行うコードを一元管理することができます。 スレッドが停止する直前に OnTerminate イベントが発生します。 クリーンアップ コードを OnTerminate イベント ハンドラに記述しておくと、Execute メソッドがどのような実行パスを通ったとしても、必ずそのクリーンアップ コードが実行されます。
OnTerminate イベント ハンドラは、スレッドの一部として実行されるのではありません。 アプリケーションのメイン VCL スレッドのコンテキストで実行されます。 これは次の 2 つの意味を持ちます。
- OnTerminate イベント ハンドラでは、スレッド ローカル変数を使用できません(メイン スレッド値が必要でない場合)。
- OnTerminate イベント ハンドラから、他のスレッドとの競合を気にすることなく、任意のオブジェクトに安全にアクセスできます。