2011-10-08 142 views
1

我有一些任務將UI凍結了幾秒鐘,並且在這種特殊情況下,除了從UI線程執行它(通常我使用Dispatchers),我沒有別的選擇。WPF:當UI線程被阻塞時更新鼠標指針

我完全理解我的窗口在這段時間內無法重繪,但是如何在執行阻塞調用之前強制鼠標指針重繪自己?現在我這樣做:

Me.Cursor = System.Windows.Input.Cursors.Wait 
[Heavy Task] 
Me.Cursor = System.Windows.Input.Cursors.Default 

但是窗口不會更新遊標到等待遊標,因爲UI線程被凍結?我如何強制更新?

+1

重新考慮執行任務的UI線程 –

+0

上@FactorMystic你讀什麼我寫的嗎? – Muis

+0

當然是我做的,但我建議轉向解決爲什麼你不能長時間運行UI線程的工作 –

回答

3

似乎我找到了解決方案。除了更改光標的窗口,全球在此改變它:

Mouse.OverrideCursor = Cursors.Wait; 
[Heavy Task] 
Mouse.OverrideCursor = Cursors.Default;