2
我最近更改了一些代碼以異步,使用async/await模式。同步上下文沒有通過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不支持從一個線程從調度線程不同其 SourceCollection變化。
_serverPingDtoList
是WPF綁定屬性的後臺字段。既然我認爲async-await保存了同步上下文,爲什麼我會得到這個錯誤呢?
我不認爲這會在明確的'StartNew'中做到這一點。它會做什麼是保留生成的延續的上下文,以便'//更多代碼在這裏' – vcsjones
你的簽名不應該返回一個'任務'嗎? –