【问题标题】:reusing the backgroundworker more than once多次重用后台工作者
【发布时间】:2009-03-25 10:57:28
【问题描述】:

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

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 回调上的 switch 语句来确定我是在执行操作 1 还是 2。

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

【问题讨论】:

    标签: c# backgroundworker


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多