我对我的应用程序进行了更改,以便在应用程序打开时在后台线程上加载数据(使用 async/await)。现在,在应用程序完全加载后,当尝试更新绑定属性时,我得到了这个异常:
PresentationFramework.dll 中出现“System.NotSupportedException”类型的第一次机会异常
附加信息:这种类型的 CollectionView 不支持从不同于 Dispatcher 线程的线程更改其 SourceCollection。
在 async/await 更改首先更新该属性之前,此代码正在运行。我尝试在代码周围添加 Dispatcher.Invoke() ,但我得到了同样的错误:
System.Windows.Application.Current.Dispatcher.Invoke(() =>
{
this._customVariableGroups[index] = savedGroup;
});
由于该字段最初是在后台线程上更新的,是否会导致从主线程更新它时出现问题?请注意,在 Visual Studio 的线程窗口中,此代码在主线程上执行。我不知道还能做些什么才能让它发挥作用。
这是字段:
private ObservableCollection<CustomVariableGroup> _customVariableGroups;