我写了使用for循环2次短方法:如何刷新进度准确
progressBar1.Minimum = 1;
progressBar1.Maximum = 1000000;
progressBar1.Step = 1;
for (int idx = 1; idx < 1000000; idx++)
{
progressBar1.PerformStep();
}
Thread.Sleep(2000);
progressBar1.Invalidate();
this.Update();
progressBar1.Value = 1;
for (int idx = 1; idx < 1000000; idx++)
{
progressBar1.PerformStep();
}
我的问题是这样的:在第一遍,当值上1000000实际颜色栏只 显示大约50-75%,但从不显示100%,即使该值已达到最大值。
这是在一种方法中多次使用进度条的独特之处。
我怎样才能得到实际的彩条到最后?
(显然它是一个缓冲的事情吗?)
其实,海事组织,如果你想准确地更新的进度,你应该在另一个线程与执行你的工作(例如BackgroundWorker),以免妨碍GUI线程。 – Patrick 2012-01-06 16:32:42
无论步长是多少,Vista中的绿色进度条都是动画并且进展顺利。顺利进展是这里的问题,它使可见的栏落后于价值。你通过阻止UI线程使它变得非常糟糕,不允许这种动画发生。解决方法是*减少价值,酒吧立即赶上。 – 2012-01-06 16:43:39