Schau mal hier:
http://www.hinzberg.net/csharp/cshar...eadinvoke.html
Im Prinzip prüfst Du auf einem Control im Hauptthread, ob es bei 'InvokeRequired' true zurückliefert. Wenn ja, gibst Du einen Delegaten der die Anweisung ausführt mittels Invoke an das Control. Diesen führt das Control dann bei nächster Gelegenheit in seinem Thread-Context aus.