我有一個WPF應用程序讀取文件並在數據庫中插入一些記錄的導入文件方法。WPF:如何調用Dispatcher.BeginInvoke *當隊列中沒有任何內容被調用時?
此方法運行在BackgroundWorker
對象中。 我在Dispatcher.Invoke
調用中更新了進度條。如果按原樣運行,導入200k條記錄需要1分鐘左右的時間,如果我只是沒有顯示任何進度,則只需要4到5秒!如果我使用Dispatcher.BeginInvoke
,Background
優先級,它需要相同的4到5秒,但進度條+計數器正在更新並需要大約1分鐘。所以,顯而易見,用戶界面是這裏的問題。
而另一個問題是我需要顯示一個進度,所以我在想如果有什麼辦法可以使用Dispatcher.BeginInvoke
,但首先檢查隊列上是否有任何東西,如果是這樣,我只是跳過它,這會表現如下:第一秒完成1%,2秒後完成50%,第四秒完成100%)。
對此有何幫助?
謝謝!!!