본문 바로가기

Delphi/끄적이기

procedure를 Task로 호출하기

var
  .., System.Threading;

procedure RunTask(AProc: TProc);
begin
  //단일 프로시저일 경우
  TTask.Run(AProc).Wait();
end;

procedure RunTasks(arrProc: array of TProc);
var
  I: Integer;
  Tasks: array of ITask;
begin
  //다수의 프로시저를 동시에 호출해야 할 경우
  SetLength(Tasks, High(arrProc) + 1);
  
  for I := Low(Tasks) to High(Tasks) do
    Tasks[I] := TTask.Run(arrProc[I]);
    
  TTask.WaitForAll(Tasks);
end;
반응형