Ho ragione di pensare questo è l'uso corretto di un Dizionario ConcurrentConcurrent Dizionario Utilizzo a norme
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;
Non ho serrature, ecc e sono solo l'aggiornamento del valore nel dizionario anche se più thread potrebbero essere cercando di Fai lo stesso.
Dipende - ha 'newLongValue' dipende dal valore precedente di' myDic [InputID] '? –
1UP per il nome della variabile "myDic"! –
si dovrebbe evitare di accedere direttamente con la chiave 'myDic [InputID]' per condizioni di gara. Dovresti provare 'GetOrAdd' –