我的代码中有2个BackgroundWorkers。一个人做了一些工作,他们不能一起运行,这意味着第二个需要等待第一个完成。我不希望应用程序崩溃当我点击在工作期间的主窗口。我可以这样做吗?
答案 0 :(得分:2)
首先,也许你可以在1 BackgroundWorker
中完成所有后台工作。
要回答您的问题,您可以在第一个RunWorkerCompleted事件处理程序中启动第二个BackgroundWorker
。
bw1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw1_RunWorkerCompleted);
private void bw1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
//celebration!
//and then start the 2nd BackgroundWorker
BackgroundWorker bw2 = new BackgroundWorker();
bw2.DoWork += new DoWorkEventHandler(bw2_DoWork);
bw2.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw2_RunWorkerCompleted);
bw2.RunWorkerAsync();
}