private void button1_Click(object sender, EventArgs e)
{
//progress bar
backgroundWorker1.RunWorkerAsync();
progressBar1.Value = 1;
progressBar1.Minimum = 1;
progressBar1.Maximum = 10;
label3.Text = "backgroundworker Task completed";
Thread.Sleep(100);
Application.DoEvents();
// end of bgw
}
我在Backgroundworker1.RunworkerAsync()
上得到错误,它显示Backgroundworker
的错误是忙碌的,并尝试以后使用它。是否有任何其他方法来解决。我提前感谢。
1条答案
按热度按时间but5z9lq1#
调用
RunWorkerAsync
时,IsBusy
属性将返回True
。BackgroundWorker
将引发其DoWork
事件,您将在该事件处理程序中执行后台工作。一旦该事件处理程序完成,它将引发其RunWorkerCompleted
事件,您可以选择处理该事件以在后台工作后更新UI。两个事件的事件处理程序完成后,IsBusy
属性将返回False
,该属性的全部意义在于告诉您BackgroundWorker
已经忙碌了,因此您不应该调用RunWorkerAsync
。问题的解决方案是在IsBusy
再次变为False
之前不要调用RunWorkerAsync
,例如