我正在编写一个重复运行一系列数字 IO 操作的 Windows 应用程序。
当用户单击“开始”按钮时,这一系列动作开始,并由 backgroundWorker1_DoWork() 中的后台工作人员完成。
但是,有时我会收到“此后台工作人员当前正忙.......”错误消息。
我正在考虑在代码中实现以下内容,方法是在开始另一个操作序列之前使用 while 循环“杀死”后台工作人员:
if (backgroundWorker1.IsBusy == true)
{
backgroundWorker1.CancelAsync();
while (backgroundWorker1.IsBusy == true)
{
backgroundWorker1.CancelAsync();
}
backgroundWorker1.Dispose();
}
backgroundWorker1.RunWorkerAsync();
我想我主要担心的是, backgroundWorker1 最终会被“杀死”吗?如果会,完成它需要很长时间吗?
这种编码会让我陷入无限循环吗?