WFP 后台工作线程等待其他后台工作线程完成
本文关键字:工作 线程 后台 等待 WFP 其他 | 更新日期: 2023-09-27 18:31:46
我的代码中有 2 个 BackgroundWorkers。每个 BackgroundWorker 都做一些工作,但它们不能一起运行,这意味着第二个需要等待第一个完成。我也不希望在工作期间单击主窗口时应用程序崩溃。我该怎么做?
第一件事是,也许您可以在 1 BackgroundWorker
内完成所有后台工作。
若要回答你的问题,可以在第一个事件的 RunWorkerDone 事件处理程序中启动第二个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();
}