1

关于如何实现进度条有很多问题,我相信我已经通过了所有这些问题,但我仍然不知道为什么我的进度条不起作用。

嗯,好像是做完操作才可以,这当然不是我想要的。我希望进度条能够正常工作,因为主要操作正在做它的事情。

我的代码很长而且很痛苦,所以我将对其进行简化以使其尽可能基本。

private void button1_Click(object sender, EventArgs e)
{
  backgroundWorker1.RunWorkerAsync();
  //Main UI Operation
}

private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
 for (int i = 1; i <= 100; i++)
  {
   // Wait 100 milliseconds.
   Thread.Sleep(100);
   // Report progress.
   backgroundWorker1.ReportProgress(i);     }
  }

private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs        e)
  {
   progressBar1.Value = e.ProgressPercentage;
  }

就像我说的,我只在主 UI 操作后才看到进度条。

WorkerReportsProgress 设置为 True。最小值和最大值分别为 0 和 100。

我觉得这可能是对线程缺乏了解。

4

1 回答 1

1

我测试了和你一样的代码,发现它有效。您是否忘记将WorkerReportesProress属性更改为True

于 2012-11-14T02:16:49.077 回答