Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#2

AW: TTask bei FMX startet nicht (Delphi 10.2)

  Alt 17. Dez 2017, 13:42
Versuch mal das:

Delphi-Quellcode:
    ShowMessage ('1. Before TTask');

    TTask.Run( procedure
                begin

                  sleep (5000);

                  TThread.Synchronize(nil,
                                      procedure
                                      begin
                                          ShowMessage ('2. During TTask');
                                      end);


                end);

    ShowMessage ('3. After TTask');
Du erwartest hoffentlich nicht das hier 1. 2. 3. in der Reihenfolge ausgeführt wird.
Der Task wir ja im Hintergrund laufen, und irgendwann nach 5000ms ausgelöst werden.
Muss dann mit Queue oder Synchronize mit dem Hauptthread synchrnisiert werden, ansosnten gibt es Crash.

Die Reihenfolge ist
1. Before
2. After (fast zeitgleich)
// hier kannst du aber normal im Hauptthread andere Dinge machen, es bleibt reaktiv.
3. During (ca. 5000ms danach).

Ist es das was du erreichen möchtest ?

Rollo
  Mit Zitat antworten Zitat