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.');
반응형