我正在尝试从异步方法设置视图模型列表属性,但这以以下错误结束:
{"应用程序调用了一个为不同线程封送的接口。(HRESULT的例外:0x8001010E(RPC_E_WRONG_THREAD(("}
错误很明显。我不清楚的是解决此问题并成功设置进而更新 UI 的属性的最佳方法。
以下尝试以对象引用未设置为对象的实例结束 初始化调度程序时出错:
private async Task DoSomething()
{
DispatcherHelper.Initialize();
DispatcherHelper.CheckBeginInvokeOnUI(
() =>
{
ViewModelProperty = SomeResult;
});
}
解决此问题的最佳方法是什么?
看起来您正在后台线程中调用DispatcherHelper.Initialize()
。在这里,它无权访问调度程序对象。
您需要在 UI 线程上初始化它,如文档中所述:
初始化。应在 UI 线程上调用此方法一次,以确保初始化 UIDispatcher 属性。