不止一次地重复使用背景工作者

时间:2009-03-25 10:57:28

标签: c# backgroundworker

我正在使用后台工作人员进行昂贵的操作:

backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);
backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
backgroundWorker1.RunWorkerAsync(inputs);

最后我有这个:

 void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
   Messagebox.Show("Done with expensive operation 1"};
}

我现在有另一个昂贵的操作。我可以重用这个相同的后台工作者。我现在想要新的回调,因为我不希望ProgressChanged和DoWork Callbacks上的switch语句确定我是在进行操作1还是2。

使用2个单独的后台工作者类是否更简单

1 个答案:

答案 0 :(得分:14)

是的,你可以重复使用BackgroundWorker - 但你只能在任何时候使用它 - 而不是同时使用它。但是,如果操作不同,我会使用单独的工作人员。否则你将不得不解开事件,挂钩正确的事件等等。凌乱。