I want to create multiple UI threads in my application. I have simulated the scenario as below. I am creating a new window / form on a button click in a background
You could handle the MainForm.Closing event and call subForm.Close ( marshalled onto the right thread ) for each sub form.
I'm not sure why you want the forms on separate threads, though. Can't you just display the sub forms non-modally on the main thread?