Wenn du eine Prozedur schreibst, dann ist diese nicht an einen Thread gebunden sondern läuft immer dort, von wo sie aufgerufen wird. Wenn du eine Prozedur von einem Thread aus im Hauptthread aufrufen willst, verwende Synchronize und übergebe die (parameterlose) Prozedur. Sobald der Hauptthread "Zeit" hat, wird dann diese Prozedur dort ausgeführt. Der Thread wartet solange, bis die Prozedur im Hauptthread fertig ausgeführt wurde. Willst du nicht, dass gewartet wird, verwende Queue, statt Synchronize.