Habe das jetzt nochmal getestet mit einem Thread, der exakt 1 Sekunde lang einen Wert in einer Schleife inkrementiert.
Bild 1 zeigt den endgültigen Wert der Variable nach Beendigung des Thread.
Bild 2 führt nebenher den gleichen Task auch nochmal im Main Thread aus.
Wie man sieht es lediglich
TThread.Synchronize
von der Performance her minimal schlechter.
TThread.Queue
ist genauso schnell wie
SendMessage oder
PostMessage.
Synchronisiert wird jeweils wenn
Value mod 100000 = 0
, also jeweils nach 100.000 Iterationen.