我试图弄清楚如何在以下情况下取消后台工作程序:
在一个 Winform 上,我有一个后台工作程序,我称之为基本上从服务中检索大量数据。此操作可能需要 1 秒到 5 分钟。所以,我所做的是我创建了另一个 Winform 并在其上粘贴了一个选框进度条。
我想要做的是向那个 Winform 添加一个取消按钮,上面有进度条,它将取消该后台工作程序。
我当前的代码设置为:
this.backgroundWorker1.RunWorkerAsync();
pb = new frmProgressbar();
pb.Show();
while (this.backgroundWorker1.IsBusy)
{
Application.DoEvents();
}
pb.Dispose();
因此,这可以正常工作,因为它在后台工作人员运行时显示进度条,然后处理进度条表单。
但是,我需要找到一种方法来允许用户通过在 frmProgressbar 上放置一个取消按钮来取消操作,该按钮将返回一个取消来杀死后台工作人员。有什么建议么?