从异步方法设置视图模型 UI 属性



我正在尝试从异步方法设置视图模型列表属性,但这以以下错误结束:

{"应用程序调用了一个为不同线程封送的接口。(HRESULT的例外:0x8001010E(RPC_E_WRONG_THREAD(("}

错误很明显。我不清楚的是解决此问题并成功设置进而更新 UI 的属性的最佳方法。

以下尝试以对象引用未设置为对象的实例结束 初始化调度程序时出错:

 private async Task DoSomething()
    {
        DispatcherHelper.Initialize();
        DispatcherHelper.CheckBeginInvokeOnUI(
          () =>
          {
           ViewModelProperty = SomeResult;
          });
    }

解决此问题的最佳方法是什么?

看起来您正在后台线程中调用DispatcherHelper.Initialize()。在这里,它无权访问调度程序对象。

您需要在 UI 线程上初始化它,如文档中所述:

初始化。应在 UI 线程上调用此方法一次,以确保初始化 UIDispatcher 属性。

相关内容

  • 没有找到相关文章