Delphi Future 执行异步请求并返回请求结果
-
先添加线程引用单元 System.Threading
-
声明一个带返回值(string类型)的方法:传入一个字符串并返回一个字符串
function LogMsg( Msg : string):string; begin Result := '这是一段Future记录的日志' + Msg ; end;
-
开启一个线程并执行医生方法
var th1 : TThread;
begin
th1 := TThread.CreateAnonymousThread(
procedure
var
Future : IFuture<string>;
val : string;
begin
Future := Ttask.Future<string>(
function : string
begin
Sleep(5000);
Result := LogMsg('1020-01'); //自己封装的带string返回值的方法
end);
val := Future.Value; //获取 Future的返回值
TThread.Synchronize(nil, //线程结束后处理返回的数据
procedure
begin
Memo1.Lines.Add(val);
end);
end);
th1.Start; //执行