如何使Observable集合在C#Net Threads中工作?

时间:2014-11-28 06:56:51

标签: c# .net wpf xaml thread-safety

我试图在我的WPF应用程序中实现加载图标(通过线程),但在我尝试将项目添加到observable集合时,遇到了Null Reference异常。我遵循以下建议,但它不起作用: How to make ObservableCollection thread-safe?

简而言之:

这有效:

private void Refresh() {
MTObservableCollection <someObject> someTable = new MTObservableCollection<someObject>();
someTable.Add(new someObject());
...
}

这不起作用:

private void Refresh() 
{
Task.Factory.StartNew(()=> {
    MTObservableCollection <someObject> someTable = new MTObservableCollection<someObject>();
    someTable.Add(new someObject()); //this line throws null reference for someTable;
});
...
}

我使用Task.Factory的原因是因为我想在发生这种情况时插入加载图标。

1 个答案:

答案 0 :(得分:1)

不要使用MTObservableCollection。而是使用BindingOperations.EnableCollectionSynchronization。