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个单独的后台工作者类是否更简单

解决方法

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...