Я использую словарь внутри некоторой задачи.
Логически я настроил его так, чтобы мои ключи никогда не столкнулись, хотя иногда, когда я добавляю в словарь, я получаю это исключение.
Index was outside the bounds of the array.
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Rpc.<MapIntoRpc>b__4[T](Object x) in Rpc.cs:line 113
at System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
Я понимаю, что может возникнуть проблема concurrency при попытке удалить или добавить один и тот же ключ несколько раз, но я выполнил это алгоритмически.
Что приводит к сбою добавления? Каков наилучший способ обойти это?