Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#27

AW: Ist die Verwendung von TTask so korrekt?

  Alt 2. Jan 2017, 15:55
Also Threads lohnen sich nur, wenn der enthaltene Code mehr im Thread macht, als in der GUI.
Im "Normalfall" würde ich Dir nicht widersprechen.

Aber es stimmt für die mobilen Plattformen und FMX nicht.

Beispiel:

Delphi-Quellcode:
procedure TForm202.Button1Click(Sender: TObject);
begin
  Sleep(1000);
  Caption := '42';
end;

procedure TForm202.Button2Click(Sender: TObject);
begin
  TTask.Run(Procedure
    begin
      TThread.Queue(NIL,Procedure
        begin
          Sleep(1000);
          Caption := '42';
        end;
    end;
end;
hat nicht das gleiche verhalten!

Besser wäre natürlich:

Delphi-Quellcode:
Uses
  Delphiprofi.FDK.Idleworker;

procedure TForm202.Button3Click(Sender: TObject);
begin
  TIdleworker.Default.Execute(
    Procedure
      begin
        Sleep(1000);
        Caption := '42';
      end,true);
end;

Geändert von Mavarik ( 2. Jan 2017 um 16:42 Uhr)
  Mit Zitat antworten Zitat