Auf jeden Fall sollte dir erst mal klar sein was Synchronize() überhaupt macht:
- der aufrufende Thread wird angehalten
- Wenn der Hauptthread irgendwann mal nichts zu tun hat wird die übergebene Methode vom Hautpthread aufgerufen und abgearbeitet. Während der Abarbeitung der Methode kann der Hauptthread natürlich nichts anderes machen.
- nachdem der Hauptthread die Methode beendet hat, wird auch der aufrufende Thread fortgesetzt
Ich bin mit deiner Formulierung etwas unglücklich - genauer gesagt die Wortwahl "wird angehalten" und "wird fortgesetzt". Das könnte missverstanden werden.
Der aufrufende Thread blockiert, bis der Hauptthread die Methode abgearbeitet hat und das signalisiert.