c# - 不止一次地重用 backgroundworker

标签 c# backgroundworker

我正在使用后台 worker 来做一个昂贵的操作:

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"};
}

我现在有另一个昂贵的手术。我可以重用这个相同的后台 worker 吗?我现在想要新的回调,因为我不想在 ProgressChanged 和 DoWork 回调上使用 switch 语句来确定我是在执行操作 1 还是 2。

使用2个单独的后台 worker 类是不是更简单

最佳答案

是的,您可以重复使用 BackgroundWorker - 但您在任何时候只能使用一次 - 不能同时使用。但是,如果操作不同,我会使用单独的 worker 。否则你将不得不解开事件, Hook 正确的事件,等等。困惑。

关于c# - 不止一次地重用 backgroundworker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/681076/

相关文章:

c# - 如何使用 C# 清除 Windows 应用程序中的 datetimepicker 值?

c# - 调用线程无法访问此对象,因为另一个线程拥有它

ruby-on-rails-4 - Sidekiq:如何将进程分配给 worker ?

postgresql - 如何为 PostgreSQL 11 服务器设置后台 worker ?

c# - 如何使用 BackgroundWorker?

c# - 抓取 Outlook 加载项中当前选定的文件夹

c# - 你如何在 C# 中获取文件大小?

c# - 使用 ASP.Net + SQL Server 构建在线音频库

c# - 我可以在 .NET 配置部分中添加文本节点而不是属性吗?

c# - 立即停止所有 SSH 连接