BusyScreen bs; //The busy screen form displayed in a seperate thread
Thread t=new Thread(runThread)
t.start();
/*Do something else in main thread. When you want to stop the above
*thread (assuming the BusyScreen class has a method called
*KillMe(object o ,EventArgs e) which calls this.Dispose(); and this.Close();
*in order to stop the form and kill the thread
*/
bs.invoke(new EventHandler(bs.KillMe));
public static void runThread()
{
bs=new BusyScreen();
Application.Run(bs);
}