この質問は主に学術的なものです。これは必ずしも実用的なコードではないと私は理解しています。 IDictionaryとConcurrentDictionaryのスレッドセーフティに関する考慮
は、スレッドの安全性が懸念され、このコードを、考えてみましょう:// In the constructor
IDictionary<string, string> myDictionary = new ConcurrentDictionary<string, string>();
...
// Elsewhere in the class
myDictionary.Add("foo", "bar");
私の全体的な質問:どのようにこれはビューの同時実行性の観点から処理されますか?
これはスレッドセーフであると考えられますか?その場合、なぜですか?スレッドセーフな(既知の)スレッドセーフメソッドがAddOrUpdate
なので、私は尋ねます - これにはIDictionary
でアクセスできません。ここで何が起こっているのかを知るにはCLRは「十分にスマート」ですか?私がここで紛失している遺産の特性はありますか?.Add
コールは.AddOrUpdate
と呼ばれていますか?