Du schreibst, dass du die Daten erst dem VST zuführst wenn der Thread beendet ist. Woher weißt du denn das der Thread beendet ist?
Prüfst du in einem Timer irgendwie ob die Thread Ausführung abgeschlossen ist? Oder lässt du dir ein Event aus dem Thread feuern?
Und wenn ich das jetzt mal mit Synchronize versucht....ich meine mal gelesen zu haben, dass Synchronize im Mainthread zu Deadlocks führen kann.
Warum sollte
Synchronize()
zu Deadlocks führen? Es ist gerade dazu da, um einen Thread mit dem Mainthread zu synchronisieren und die Aktionen entsprechend dann erst auszuführen. Synchronize arbeitet blockieren, ja. Aber nur solange die Methode die du im Mainthread laufen lassen möchtest noch nicht abgeschlossen ist. Und für eventuell auftretende Deadlocks bist du selbst zuständig.
Du kannst alternativ auf
Queue()
,
SendMessage()
oder
PostMessage()
benutzen.