Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: XE 7 - Parallel Programming Library

  Alt 2. Sep 2014, 16: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
  Mit Zitat antworten Zitat