我想作一個專門的類來更新我的應用程序的進度條(在這種情況下,WPF進度)。我做了這樣的事情:專用的C#類更新進度
public class ProgressBarUpdate : IDisposable
{
private readonly double _delta;
private int _current;
private int _total;
private readonly ProgressBar _pb;
public ProgressBarUpdate(ProgressBar pb, int total)
{
_pb = pb;
_total = total;
// the pb.Maximum is a double so it doesn`t get truncated
_delta = _pb.Maximum/total;
_current = 0;
_pb.Visibility = Visibility.Visible;
}
public void Dispose()
{
_pb.Visibility = Visibility.Collapsed;
_current = 0;
}
public void UpdateProgress()
{
_pb.Value =(int)_delta * (++_current);
}
,我使用這樣的(在UI線程):
using (var pu = new ProgressBarUpdate(pb, totalCount)
{
for (x=0; x<totalCount; x++)
{
// operations here
pu.UpdateProgress()
}
}
但UI,很可能受阻,無法正確更新。顯示所有進度的最佳方式是什麼?
也許它是你的UI是不僅「不更新」,但也阻止了? – TGlatzer
你有調試到它,以確保'_pb.Value'得到改變,因爲你期望'UpdateProgress'調用內? – Tim
*但是這在我的用戶界面中沒有正確更新。*這是什麼意思? –