progressbar IsIndeterminate在其他繁重的任务运行时无法正常工作

时间:2011-04-01 16:01:41

标签: c# wpf progress-bar

在使用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);
    }
}

1 个答案:

答案 0 :(得分:3)

听起来像是在阻止UI线程,这就是进度条卡住的原因。

如果您想执行一项长任务,请使用BackgroundWorker,这样它就可以使用工作线程并且进度条可以正常工作

相关问题