我寫了使用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