2011-04-01 40 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