Delphi/C++Builder/java でスレッドをスレッドじゃなく使いたい

Delphi/C++Builder でスレッドをスレッドじゃなく使いたい

スレッドで構築したけど、関数的に利用したい処理があったりする
  1. AMyThread := TMyThread.Create(True);  
  2. AMyThread.FreeOnTerminate := False;  
  3. AMyThread.Start;  
  4. AMyThread.WaitFor; // ←スレッドが終了するまで、呼び出し側スレッドが停止します  
  5. // :  
  6. AMyThread.Free;  
WaitFor メソッドは ReturnValue プロパティの値を戻り値とするため、FreeOnTerminate が True だと、ReturnValue を WaitFor が呼びに行った時には、オブジェクトが自動解放されてしまいエラーになります

ちなみに java では
thread.start(); // 開始
thread.join(); // 終了待ち

コメント