Bringt Queue() neben dem Vorteil, dass der Threadablauf nicht blockiert wird, irgendwelche Nachteile mit sich?
Nicht, daß ich wüsste.
Synchronize = Arbeite diese Methode bei nächter Gelegenheit im Hauptthread ab und warte solange bis sie fertig ist.
Queue = Arbeite diese Methode bei nächter Gelegenheit im Hauptthread ab.
Es kann allerdings passieren, daß bei Queue die Methode gar nicht abgearbeitet wird, da bei Freigabe der TThread-Instanz alle noch vorhandenen Queue-Events gelöscht werden. Dem kann man aber vorbeugen, in dem man anstatt der einfachen Queue-Methode die gleichnamige Klassenmethode mit dem zusätzlichen TThread-Parameter an erster Stelle verwendet und diesen als
nil übergibt. Dann kann das zwar theoretisch immer noch passieren, aber nur wenn das ganze Programm vor Abarbeiten des Queue-Events beendet wird. Das wäre übrigens bei Synchronize auch der Fall.