That's a slightly strange way of doing things... in C#-land you usually have your form on your main thread and create other threads to do work.

Then you have your UI driving your work code, not your work code driving your UI...

Darwen.