我有一個ObservableCollection<T>
在我的項目之一,我需要使訪問線程安全。
特別是,我需要一個線程安全的枚舉器。這意味着,在迭代集合期間(例如,在LINQ查詢期間),沒有人應該能夠添加項目。線程安全替換ObservableCollection <T>在C#4.0中,安全枚舉
我注意到了.NET 4.0命名空間中的類System.Collections.Concurrent
。然而他們中沒有一個似乎匹配。另外,在MSDN doc,我沒有找到一個關於哪個訪問實際上是線程安全的段落。
是否存在某個現有的線程安全集合,我可以使用它,還是必須自己實現?
*(例如在LINQ查詢)遍歷集合時,沒有人應該能夠添加一個項目。*如果有人試圖當你迭代它項添加到收藏應該發生什麼?它應該拋出異常嗎?塊?成功但不會在迭代中出現? – 2010-11-10 13:32:51
@馬克,謝謝你的想法。我想阻止更新。 – Marcel 2010-11-10 13:34:19
請嘗試以下鏈接提供了一個線程安全的解決方案,從任何線程工作,並且可以通過多種UI線程綁定到:http://www.codeproject.com/Articles/64936/Multithreaded-ObservableImmutableCollection – Anthony 2014-04-15 19:19:40