Estoy en lo cierto al pensar que esto es el uso correcto de un Diccionario concurrenteDiccionario concurrente Uso correcto
private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>();
//Main thread at program startup
for(int i = 0; i < 4; i++)
{
myDic.Add(i, 0);
}
//Seperate threads use this to update a value
myDic[InputID] = newLongValue;
no tengo cerraduras, etc y sólo estoy actualizando el valor en el diccionario pesar de que múltiples hilos pueden estar tratando de hacer lo mismo.
Depende - Qué 'newLongValue' depende del valor previo de' MYDIC [InputID] '? –
1UP para el nombre de la variable "myDic"! –
debe evitar acceder directamente por la tecla 'myDic [InputID]' para la condición de carrera. Deberías probar con 'GetOrAdd' –