這是一個推測性問題,所以沒有提供代碼。界面刷新凍結應用程序,而油漆
我有一個應用程序需要一個大的XML文件,並從中建立一個視圖供用戶編輯。 XML的加載是在後臺工作人員進行的,然後通過樹形視圖以一種相當香草的MVVM方式綁定到視圖。
這一切都很好,並且在工作人員加載XML時顯示一個不錯的等待遊標。
然而,當XML文件變得非常大(20M)時,在新視圖的繪製期間UI將掛起。這是可以預料的,但它確實意味着應用程序仍然存在的所有視覺線索都會凍結。一旦裝載在塗裝前的工人完成之後,光標就被改變。是否有一個用於控件或漂亮技巧的'paintingHasFinished'類型事件可用作句柄,以便在此UI操作之後可以更改我的等待遊標?
這是一個有趣的想法。雖然這會在應用程序主調度程序當前操作結束時觸發調用嗎?那麼計時器線程FI可以在這裏嗎?我擔心異步電話,我需要在這裏嗎? – tigerswithguitars
@tigerswithguitars:不需要害怕我不認爲。它將在Layout和Render通過後運行該操作,請參閱[dipatcher優先級列表](http://msdn.microsoft.com/zh-cn/library/system.windows.threading.dispatcherpriority.aspx)。它也會在GUI線程上運行,所以我想有一個計時器線程可能會阻礙,但除非你修改任何不重要的字段屬性。 – markmuetz
好的。那是個很好的觀點。它似乎爲我工作!我認爲這兩個重要答案的組合可能會解決很多其他問題,並且通常會提升我的WPF UI技能。我希望我可以選擇兩個!好東西。 – tigerswithguitars