关于如何实施进度条已经有很多问题,我相信我已经完成了所有这些问题,但我仍然不知道为什么我的进度条不起作用。
嗯,它似乎只在操作完成后才起作用,这当然不是我想要的。我希望进度条能够正常工作,因为主要操作正在做它的事情。
我的代码非常漫长而痛苦,因此我将简化它以使其尽可能基本。
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。
我觉得这可能是对线程缺乏了解。
答案 0 :(得分:1)
我测试了与您相同的代码并发现它有效。您是否忘记将WorkerReportesProress
属性更改为True
?