在使用min和max值时,我使用以下代码更新我的progressBar 做一些繁重的任务,它工作正常。我有一些无法提供的任务 按增量值更新状态,所以我想使用IsIndeterminate来显示 事情正在发生。当我将它设置为IsIndeterminate时,它会在繁重的任务运行时冻结。使进度条在IsIndeterminate中运行的最佳方法是什么。我尝试使用DispatchTimer,但是在重任务运行时从未调用过tick。我很好奇处理这个问题的最佳方法是什么。谢谢你的帮助。
public static class extensionRefresh {
private static Action EmptyDelegate = delegate() { };
public static void Refresh(this UIElement uiElement) {
uiElement.Dispatcher.Invoke(DispatcherPriority.Background, EmptyDelegate);
}
}
答案 0 :(得分:3)
听起来像是在阻止UI线程,这就是进度条卡住的原因。
如果您想执行一项长任务,请使用BackgroundWorker,这样它就可以使用工作线程并且进度条可以正常工作