我最近使用 async/await 模式将一些代码更改为异步的。
此代码现在正在创建一个异常:
private async void Refresh(object stateInfo)
{
await Task.Factory.StartNew(HydrateServerPingDtoList);
// more code here
}
private void HydrateServerPingDtoList()
{
// more code here.
// Exception occurs on this line:
this._serverPingDtoList.Add(new ServerPingDto() { ApplicationServer = server });
}
例外:
这种类型的 CollectionView 不支持从不同于 Dispatcher 线程的线程更改其 SourceCollection。
_serverPingDtoList
是 WPF 绑定属性的支持字段。既然我认为 async-await 保留了同步上下文,为什么会出现这个错误?