2012-05-09 43 views

回答

3

擴展方法不會添加或刪除任何線程安全性。但是你無法真正忽略迭代集合從來就不是線程安全的,無論你是明確地執行還是讓Linq執行它。您必須確保沒有其他線程可以同時修改集合。

請注意,在Linq中這是非常棘手的,因爲它的延遲執行行爲。

0

的LINQ到對象擴展方法爲靜態方法來實現對System.Linq.Enumerable和MSDN指出他們都是線程安全的:

任何public staticShared在Visual Basic)此類型的成員是 線程安全

如果您在線程安全參數(which ConcurrentDictionary is)中使用它們,則不應該有任何問題。

-2

現在您可以使用.NET 4.0中介紹的線程安全的高級Concurrent集合。 這真是太棒了。 無需管理鎖或任何東西。