Einzelnen Beitrag anzeigen

greenmile

Registriert seit: 17. Apr 2003
1.082 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Label aktualisieren / TTask

  Alt 12. Jan 2021, 14:55
Und "eventuell" aufpassen, dass
Delphi-Quellcode:
CompUpdateTask.Cancel;
FreeAndNil(CompUpdateTask);
nicht im Hauptthread ausgeführt werden (vor allem niemals innerhalb von UpdateComponents),
denn wenn Cancel oder Free warten, während das Synchronize hängt, dann hast einen Deadlock.

Tipp: Auch in das Synchronize am Anfang ein CheckCanceled rein.
Danke für den Tipp, aber ich muss doch vom Haupthread aus Cancel setzen, damit der TTask abgebrochen und beendet wird.
FreeAndNil war übrigens auch blöd, ein := NIL besser.

Nachtrag: Funktioniert übrigens nicht, TAniIndicator wird, genau wie Labels, nicht aktualisiert; repaint reicht wohl nicht. Die 'Arbeit' kann ich auch nicht auslagern, ich muss zB einen Browser aufrufen und der läuft im Hauptthread. Während ich auf den Warte, tut sich unter 10.3.3 dann mal nix, auch kein drehendes 'Bitte warten' Icon.

Irgendwie war das mit Processmessages einfacher. Zumindest hat sich was getan für den User.

Geändert von greenmile (12. Jan 2021 um 15:13 Uhr)
  Mit Zitat antworten Zitat