我正在使用以下代码,并希望显示光标 加载数据时,为什么我在屏幕上看不到它?因为目前没有任何事情发生。 当我调试它时,我看到代码被调用但屏幕上什么也没发生......
onButtonCommand(){
Application.Current.Dispatcher.BeginInvoke((Action)(() =>
{
System.Windows.Input.Mouse.OverrideCursor = System.Windows.Input.Cursors.Wait;
}));
//Get service Data
_Model.SerivceData();
Application.Current.Dispatcher.BeginInvoke((Action)(() =>
{
System.Windows.Input.Mouse.OverrideCursor = null;
}));
...
答案 0 :(得分:1)
您正在调用方法异步(使用 BeginInvoke )。而是将其称为同步(使用调用)。
Application.Current.Dispatcher.Invoke((Action)(() =>
{
System.Windows.Input.Mouse.OverrideCursor =
System.Windows.Input.Cursors.Wait;
}));
BeginInvoke在调度程序上对委托进行排队,并将基于异步调度程序优先级执行它。