You're a little confused here... Don't worry, the threading is a little hard at first. There are two things to consider here... 1) The GUI thread has to stay unblocked, or your progress bar won't update 2) All controls HAVE to be created on the GUI thread, and only modified on that thread (Otherwise you get those crashes). You're having problems because you're accessing the form inside the background worker... Can't do that. The point of the worker is that it works completely independently of the GUI, just letting you know when to update the progress. So try creating the background worker from inside the Form2 constructor, then just call Form2's ShowDialog() from the main form.
public Form2()
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += BusyOperation;
bw.RunWorkerAsync();
}
Or something like that.
Proud to have finally moved to the A-Ark. Which one are you in?
Author of the Guardians Saga (Sci-Fi/Fantasy novels)