Adding to a generic dictionary causes IndexOutOfRangeException

前端 未结 3 1316
孤城傲影
孤城傲影 2021-02-03 21:05

I\'m using a dictionary inside of some Task.

Logically I have set it up so that my Keys will never clash, though sometimes when I am adding to the dictionary I get this

3条回答
  •  Happy的楠姐
    2021-02-03 21:21

    You should have looked to the documentation. That what it says:

    A Dictionary can support multiple readers concurrently, as long as the collection is not modified. Even so, enumerating through a collection is intrinsically not a thread-safe procedure. In the rare case where an enumeration contends with write accesses, the collection must be locked during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization. For a thread-safe alternative, see ConcurrentDictionary.

提交回复
热议问题