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;