Delphiで無名スレッド

Delphiで無名スレッドを使ってみる。試したのはDelphiXE4。

anonymous_thread.dpr

program anonymous_thread;

{$APPTYPE CONSOLE}

uses
  System.SysUtils
  , System.Classes
  ;

var
  Thread: TThread;

begin
  // スレッドオブジェクトを生成
  Thread := TThread.CreateAnonymousThread(
    procedure
    var
      i: Integer;
    begin
      for i := 0 to 4 do
      begin
        Writeln(i);
        Sleep(100);
      end;
    end
  );
  // スレッド終了時にオブジェクトを開放しない
  Thread.FreeOnTerminate := False;
  // スレッド実行
  Thread.Start;
  // スレッドの処理が終わるのを待つ
  Thread.WaitFor;
  // オブジェクトを開放
  Thread.Free;
end.

実行結果

>anonymous_thread.exe
0
1
2
3
4