Vor einiger Zeit war es noch OK, dass ich mit PostMessage Daten aus einem Thread an WndProc geschickt habe. Funktioniert wunderbare und ich bin Synchronize() losgeworden.
Hatte das
Synchronize
irgendwelche Probleme bereitet, oder warum wolltest du das loswerden?
Synchronize aus einem Thread heraus Sychronisiert mit dem Hauptthread. Grob gesagt kann ich dann den zweiten Thread auch komplett weglassen wenn doch eh synchronisiert wird.
Du synchronisierst ja nicht alle Aktionen des 2. Threads, sondern nur exakt die Stellen, die auf die
VCL/
GUI zugreifen. Alle anderen Berechnungen laufen dann ja trotzdem parallel ab.
Wie sieht das aus, wenn man PostMessage verwendet und die Daten in WndProc (andere
Unit) auswertet und dort die
GUI aktualisiert.
Wird dann auch mit dem Hauptthread synchronisiert bzw. IST DAS überhaupt besser? Synchronize ist weg, das war mein Ziel.
Die MessageQueue läuft auch im Hauptthread. Bei Verwendung von
PostMessage, würde ich das Verhalten allerdings eher mit
TThread.Queue
vergleichen (hierbei läuft der aufrufende Thread auch weiter; anders als beim
TThread.Synchronize
).