(Moderator)
Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
Delphi 11 Alexandria
|
AW: XE 7 - Parallel Programming Library
2. Sep 2014, 17:16
Zitat:
Gibts dann eigentlich auch ein "await" ?
Nicht Out-Of-The-Box aber leicht implementierbar:
Zitat von Chris Rolliston [url:
http://delphifoundations.com/author/[/ url] ]
Delphi-Quellcode:
type
TTaskHelper = class helper for TTask
class function Run<T>(const Sender: TObject; const Func: TFunc<T>;
const CallOnReturn: TProc<TObject, T>): ITask; overload; static;
end;
class function TTaskHelper.Run<T>(const Sender: TObject; const Func: TFunc<T>;
const CallOnReturn: TProc<TObject, T>): ITask;
begin
Result := Run(
procedure
var
Value: T;
begin
Value := Func();
TThread.Synchronize(nil,
procedure
begin
CallOnReturn(Sender, Value);
end);
end);
end;
procedure TFormMain.Button1Click(Sender: TObject);
begin
TTask.Run<string>(Self, LongTimeComing, FeedbackFromThread);
end;
http://docwiki.embarcadero.com/Libra...stem.Threading
Markus Kinzler
|