web-dev-qa-db-ja.com

辞書アクセスをスレッドセーフにしますか?

c#辞書アクセススレッドを安全にする最も簡単な方法は何ですか?好ましくは、lock(object)を使用するだけですが、他のアイデアは歓迎します!

25
Tom

.NET 4では ConcurrentDictionary クラスがあります。

古いバージョンの.NETを使用する必要があり、それを自分で書きたい場合:

  • 辞書をクラスのprivateフィールドとしてラップする
  • 別のprivate object lockObject
  • 辞書へのすべてのアクセスについて、そのlockObjectをロックします
58
Henk Holterman