2012-05-09 10 views

答えて

3

拡張メソッドはスレッドセーフを追加または削除しません。しかし、明示的に行っても、Linqにそれをさせても、コレクションを反復することは決してスレッドセーフではないことは、実際には無視できません。同時に他のスレッドがコレクションを変更できないようにする必要があります。

Linqでは実行が遅延するため、これは余計なことですので注意してください。

0

LINQのツーオブジェクトの拡張メソッドがSystem.Linq.Enumerableの静的メソッドとして実装されており、MSDNは、彼らがすべてのスレッドセーフで述べている:

どれでもこのタイプのメンバー(Visual BasicではSharedpublic staticある スレッド

スレッドセーフパラメータ(which ConcurrentDictionary is)で使用している場合は、問題はありません。

-2

スレッドセーフである.Net 4.0で導入されている先進のコンカレントコレクションを使用できるようになりました。 これは本当に素晴らしいコンセプトです。 ロックなどを管理する必要はありません。

関連する問題