2011-05-26 26 views
2

當我在一臺快速計算機上運行程序時,ProgressBarLabel(即寫入進度)得到完美更新。當我在弱電腦(如PIV或舊c2d)上運行它時,ProgressBar和窗體保持凍結狀態(但程序一直運行直到完成)。當在弱電腦上運行程序時ProgressBar不更新

我該如何解決?有背景的工作者?

+0

您使用的是WPF還是Windows窗體? – chocojosh 2011-05-26 14:45:04

回答

1

是的,你應該把你的處理放到後臺線程中。使用後臺工作人員是一個好主意,因爲您可以簡單地更新其ProgressChanged事件中的控件。

3

如果你正在使用進度條,我猜測任何任務肯定足夠長,以保證背景/工作線程。有很多選項(BackgroundWorker,旋轉你自己的線程等)。 BackgroundWorker可能是最簡單的。

-1

有一些方法允許在長時間運行的任務中對UI進行維護。

1-在另一個步驟/在一個任意時間方法調用中運行任務,然後使用this.Invoke更改進度條。 2-通過調用WinForms中的Application.DoEvents()來強制UI在任務中的某些點刷新。

+2

不建議使用Application.DoEvents()。 – 2011-05-26 15:01:17

相關問題