如何启用对集合的线程安全访问
How to enable thread-safe access to a collection
当 ObservebleCollection<T>
绑定到 UI 控件时,如果它在多个线程上使用,则很难向集合添加项目(或从中删除项目)。
为了避免这个问题,BindingOperations.EnableCollectionSynchronization
可用于WPF,BindingBase.EnableCollectionSynchronization
也可用于Xamarin.Forms。
UWP 中是否有与这些有用方法等效的方法?如果不是,如何启用对绑定到 UI 的 ObservebleCollection<T>
的线程安全访问?
不幸的是,没有这样的方法可以同步访问在 UWP 平台内的多个线程上使用的集合。您只能在 dispatcher 线程中更新数据绑定的 ObservableCollection。
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
// Update ObservableCollection
});
当 ObservebleCollection<T>
绑定到 UI 控件时,如果它在多个线程上使用,则很难向集合添加项目(或从中删除项目)。
为了避免这个问题,BindingOperations.EnableCollectionSynchronization
可用于WPF,BindingBase.EnableCollectionSynchronization
也可用于Xamarin.Forms。
UWP 中是否有与这些有用方法等效的方法?如果不是,如何启用对绑定到 UI 的 ObservebleCollection<T>
的线程安全访问?
不幸的是,没有这样的方法可以同步访问在 UWP 平台内的多个线程上使用的集合。您只能在 dispatcher 线程中更新数据绑定的 ObservableCollection。
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
// Update ObservableCollection
});