簡體   English   中英

通過異步方法設置ViewModel UI屬性

[英]Setting a ViewModel UI Property from an Async Method

我試圖通過異步方法設置ViewModel List屬性,但這以以下錯誤結尾:

{“應用程序調用了已編組為不同線程的接口。(HRESULT的異常:0x8001010E(RPC_E_WRONG_THREAD))”}

錯誤非常明顯。 對我來說,尚不清楚的最佳方法是克服此問題並成功設置屬性,從而依次更新UI。

以下嘗試以在初始化分派器時未將對象引用設置為對象錯誤的實例結束:

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

解決此問題的最佳方法是什么?

更新

我最終在App.xaml.cs OnLaunched方法內部全局初始化了DispatcherHelper。

看來您正在后台線程中調用DispatcherHelper.Initialize() 在這里,它無權訪問Dispatcher對象。

您需要在UI線程上對其進行初始化,如文檔所述

初始化。 應該在UI線程上一次調用此方法,以確保初始化UIDispatcher屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM