相关疑难解决方法(0)

如何通过工作线程更新ObservableCollection?

我有一个ObservableCollection<A> a_collection;该集合包含'n'个项目.每个项目A看起来像这样:

public class A : INotifyPropertyChanged
{

    public ObservableCollection<B> b_subcollection;
    Thread m_worker;
}
Run Code Online (Sandbox Code Playgroud)

基本上,它都连接到WPF列表视图+详细信息视图控件,它在单独的列表视图中显示所选项目的b_subcollection(双向绑定,propertychanged上的更新等).当我开始实现线程时,问题出现了.整个想法是让整个a_collection使用它的工作线程来"工作",然后更新它们各自的b_subcollections并让gui实时显示结果.

当我尝试它时,我得到一个例外,说只有Dispatcher线程可以修改ObservableCollection,并且工作停止了.

任何人都可以解释这个问题,以及如何解决它?

干杯

c# wpf multithreading observablecollection

71
推荐指数
4
解决办法
6万
查看次数

标签 统计

c# ×1

multithreading ×1

observablecollection ×1

wpf ×1