ConcurrentDictionaryを使用している場合、を使用してループするときにロックする必要がありforeach
ますか?
質問する
8445 次
1 に答える
51
ConcurrentDictionaryがある場合、foreachを使用してループするときにロックする必要がありますか?
いいえ。ドキュメントからConcurrentDictionary.GetEnumerator
:
ディクショナリから返された列挙子は、ディクショナリへの読み取りおよび書き込みと同時に安全に使用できますが、ディクショナリの瞬間的なスナップショットを表すものではありません。列挙子を介して公開されるコンテンツには、GetEnumeratorが呼び出された後にディクショナリに加えられた変更が含まれている場合があります。
それで問題がない限り、いかなる種類のロックも必要ありません。
于 2012-09-04T17:40:24.483 に答える