WFP BackgroundWorker等待其他BackgroundWorker完成

时间:2014-11-24 11:38:04

标签: c# wpf multithreading backgroundworker

我的代码中有2个BackgroundWorkers。一个人做了一些工作,他们不能一起运行,这意味着第二个需要等待第一个完成。我不希望应用程序崩溃当我点击在工作期间的主窗口。我可以这样做吗?

1 个答案:

答案 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();
}