关于如何实现进度条有很多问题,我相信我已经通过了所有这些问题,但我仍然不知道为什么我的进度条不起作用。
嗯,好像是做完操作才可以,这当然不是我想要的。我希望进度条能够正常工作,因为主要操作正在做它的事情。
我的代码很长而且很痛苦,所以我将对其进行简化以使其尽可能基本。
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。
我觉得这可能是对线程缺乏了解。