标签: c# wpf multithreading
我有一个Observable集合对象,其值从我的代码更新。此集合绑定到数据网格的两个方向。现在,这个集合线程是否安全 - 即如果我尝试从代码中修改集合的值,同时用户尝试修改它(作为编辑数据网格的结果),程序是否会抛出例外?如果是的话,请您解释一下如何避免这种情况?
...谢谢
答案 0 :(得分:1)
这看起来像重复here和here,但简短的回答是,如果您正在修改某个属性,那么您就是安全的。
当您正在使用集合时,如果您尝试在多个线程而不仅仅是UI线程上修改ObservableCollection,则需要执行更多操作。这已经涵盖了很多,您可以通过this link或this one
但是,如果您在UI线程中进行修改,那么您就是安全的,因为这是ObservableCollection的目的。只要您通过Dispatcher.BeginInvoke()正确封送,就会在UI上创建和处理事件。
Dispatcher.BeginInvoke()