有什么好的方法可以更新商品 在ObservableCollection中是否为“线程安全”?
这是我的方式。
var target = MyCollection.Where(i => i.Key== a_Key).Single();
MyCollection[MyCollection.IndexOf(target)] = NewValue;
但是我担心。如果我使用索引,则它可能不是线程安全的。 请给我建议。
在Internet上,THere是一些线程安全的ObservableCollection。 我想用1号。
还有什么更好的方法吗?
编辑(1)
使用索引替换时,我不得不担心其他线程更改或对Collection排序的可能性。索引可能会更改,直到我覆盖为止。有可能吗?
我想知道更新/覆盖收藏项目的更多好方法。
如果有一种方法可以在没有索引的情况下更新/覆盖项目,请教我。
答案 0 :(得分:1)
除非您使用.NET Framework 4.5中引入的BindingOperations.EnableCollectionSynchronization方法,否则无论如何只能在分派程序线程上更新数据绑定的ObservableCollection<T>
。
此方法在访问集合时接受object
锁定。有关示例,请参见this答案。