मैं सही इस सोच में हूँ मैं कोई ताले आदि है और सिर्फ शब्दकोश में मूल्य भले ही एक से अधिक थ्रेड करने की कोशिश कर रहा हो सकता है अद्यतन करने हूँ एक समवर्ती शब्दकोशसमवर्ती शब्दकोश सही उपयोग
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 [इनपुटपुट]' कुंजी से पहुंचने से बचना चाहिए। आपको 'GetOrAdd' –