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.