現在、クラスに静的辞書があります。このディクショナリにロックを実装しましたが、次のエラーが発生します。
An InvalidOperationException has occurred. It reports a "collection was modified" error
これは、あるメソッドが foreach を使用してディクショナリを読み取っているときに、別のスレッドがディクショナリにアイテムを削除または追加している場合があるためです。私はその追加を読んだ
lock ( ( (IDictionary<string,string>)dict_object).SyncRoot )
読み取り/書き込み/削除が行われているすべての操作で問題は解決しますが、メッセージが表示され続けます
does not contain a definition of SyncRoot are you missing a using directive
この問題を解決する方法について何か提案はありますか? 静的辞書をスレッドセーフにする他の方法はありますか? 私は.Net 4.0を使用しています