处理Cursor类时阻止异步调用

时间:2018-05-31 17:15:37

标签: c# asynchronous

我的WPF应用程序中有以下方法。我将它包装在Dispatcher.Invoke调用中,因为打开窗口的服务在主线程以外的线程上运行。到目前为止,这是有效的。

但问题出在我的Cursor上。似乎对OpenMimic的调用是异步执行的,所以我的光标变成了一个沙漏,但只是一瞬间。然后2或3秒后,OpenMimic方法打开一个窗口。 我怎样才能显示这一点,以便Cursor在OpenMimic调用完成之前保持沙漏状态?

    [OnExecuteMethod]
    public void OpenAlarmListMimic()
    {
        Application.Current.Dispatcher.Invoke(() =>
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;
                ViewsIntegerationService.OpenMimic(@"GTCS\GCS\mmc_AlarmList", "", "", 2, ThisMimic.Context, null);
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        });
    }

0 个答案:

没有答案