본문 바로가기

Delphi/간단하게

간단하게 Task로 작업하고 원하는 결과값 리턴 받기

uses
  .., System.Threading;

TDevelopistTask = class
public
  class function FuncWait<T>(const AFunc: TFunc<T>): T; static;
end;

class function TDevelopistTask.FuncWait<T>(const AFunc: TFunc<T>): T;
var
  oFuture: IFuture<T>;
begin
  oFuture := TTask.Future<T>(AFunc);
  
  Result := oFuture.Value;
end;

  • 사용법

- 결과값이 리턴될 때까지 대기상태이므로 적절하게 사용하시면 됩니다.

if TDevelopistTask.FuncWait<Boolean>(
   function :Boolean
   begin
     Result := False;
     
     //to do..
     
     Result := ..
   end;)
 then
   ShowMessage('Result True.')
 else
   ShowMessage('Result False.');
반응형