2011-04-01 95 views
1

我使用下面的代码更新我的progressBar使用最小值和最大值时,而 做一些繁重的任务,它工作正常。我有一些任务无法通过增量值提供 更新状态,所以我想使用IsIndeterminate,因此它显示 正在发生。当我将它设置为IsIndeterminate时,它将冻结而繁重的任务正在运行。获取进度条在IsIndeterminate中运行的最佳方式是什么?我尝试过使用DispatchTimer,但当繁重的任务正在运行时,tick从未被调用过。我很好奇,处理这个问题的最好方法是什么。谢谢你的帮助。progressbar IsIndeterminate无法正常运行而其他重任务运行

public static class extensionRefresh { 
    private static Action EmptyDelegate = delegate() { }; 
    public static void Refresh(this UIElement uiElement) { 
    uiElement.Dispatcher.Invoke(DispatcherPriority.Background, EmptyDelegate); 
    } 
} 
+0

你为什么不干脆用一个后台工作? – 2011-04-01 16:05:02

回答

3

对我来说听起来像你阻塞了UI线程,这就是为什么进度条卡住了。

使用BackgroundWorker的,如果你想要做一个长期的任务,所以这样它使用工作线程和进度条会工作

+0

感谢您的帮助! – Terco 2011-04-01 16:45:03