Ja, das führt in diesem Beispielfall mit dem Pollingthread auch zum Ziel. Aber allgemein bringt das noch kein "
Wie führe ich X im Kontext von Thread Y aus?". Oder für meinen Kopf ist es heute schon zu spät.
Und warum kann ich bei TThread.Synchronize überhaupt ein anderes TThread-Objekt angeben? Die TThread-Instanzmethode CheckSynchronize springt mit Exception raus wenn sie nicht im GUI-Thread ausgeführt wird
//Edit
Edit: Ansonsten kannst du auch Events "peeken", indem du das Timeout von WaitForSingleObject auf 0 setzt und den entsprechenden Rückgabewert auswertest.
Oh. Gute Idee.