Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.329 Beiträge
 
Delphi 12 Athens
 
#3

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 14:09
Dass es teilweise funktioniert hatte, war praktisch nur ein Zufall.

Wenn es nur Aynchron, aber ebenfalls im Hauptthread laufen soll, dann nimm einfach TThread.Queue .
Das ist wie Synchronize, nur das Synchronize direkt ausgeführt und bis nach der Ausführung gewartet wird, und während Queue nur den Aufruf abschickt und direkt weitermacht.

ABER, aus den Hauptthread heraus arbeitet Queue wie Syncronize und daher wurde nun endlich TThread.ForceQueue eingebaut, was richtig funktioniert.
http://www.delphipraxis.net/179193-t...der-queue.html

Delphi-Referenz durchsuchenTThread.Synchronize
Delphi-Referenz durchsuchenTThread.Queue
Delphi-Referenz durchsuchenTThread.ForceQueue

Delphi-Quellcode:
TThread.ForceQueue(nil, procedure
  begin
    ShowMessage('During TTask');
  end);
Wie gesagt, so wird alles im Hauptthread ausgeführt, nur eben nicht sofort, sondern wenn er das nächste Mal Zeit hat.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Dez 2017 um 14:11 Uhr)
  Mit Zitat antworten Zitat