WPF:阻止UI线程时更新鼠标指针

时间:2011-10-08 15:52:16

标签: wpf multithreading user-interface blocking repaint

我有一些任务会冻结UI几秒钟,在这个特定情况下,我没有其他选择,只能从UI线程执行它(通常我使用Dispatchers)。

我完全理解我的窗口在此期间无法重绘自己,但在执行阻塞调用之前如何强制鼠标指针重绘自身?现在我做:

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

但是窗口没有将光标更新为等待光标,因为UI线程被冻结了?如何强制更新?

1 个答案:

答案 0 :(得分:3)

似乎我找到了解决方案。而不是更改窗口的光标,而不是全局覆盖它:

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