私は静的読み取り専用辞書を持っています。 いいえこの辞書に変更が加えられます。読み取り専用ディクショナリ - .ContainsKeyメソッドを呼び出す複数のスレッド
私は、この辞書から.ContainsKey(Key)を使って複数のスレッドを読み込んでいます。例えば
class MyData
{
private static private IDictionary<int, string> _dictionary = new Dictionary<int, string>();
MyData()
{
// Load Dictionary here
}
public string GetValue(int key)
{
if (_dictionary.ContainsKey(key))
{
return _dictionary[key];
}
}
}
これにはスレッドの問題がありますか?
を使用することができなければならない。しかし、あなたはまだ必要があるだろう参照を交換している間、ReaderWriterLockSlimを右クリックします。 –
@マーク:参照の作成はアトミックであることが保証されていますが、おそらく他のスレッドが変更を参照できるようにフィールド 'volatile'をマークしたいと思います。 – LukeH
私はContainsKeyメソッドを実行している間に参照を交換すると問題が発生する可能性があると私は考えていたと思いますか? –