를 잘 작성이 생각에 나는 오전 나는 등 어떤 잠금이없고 단지 여러 스레드가 시도 할 수있는 경우에도 사전에 값을 업데이트하고 동시 사전동시 사전 올바른 사용법
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;
의 올바른 사용이다 똑같이하십시오.
상황에 따라 다르다 -'newLongValue'은'myDic [InputID]'의 이전 값에 의존 하는가? –
"myDic"변수 이름에 대해 1UP! –
당신은 경쟁 조건을 위해 키에 의해 직접'myDic [InputID]'에 접근하는 것을 피해야합니다. 당신은'GetOrAdd'를 시도해야합니다 –