Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 15: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.
$2B or not $2B

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