Tôi có ngay trong suy nghĩ này là việc sử dụng đúng một từ điển đồng thờiđồng thời điển Cách sử dụng đúng
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;
Tôi không có ổ khóa vv và đang chỉ cập nhật các giá trị trong từ điển mặc dù nhiều chủ đề có thể cố gắng để làm y hệt.
Nó phụ thuộc - không 'newLongValue' phụ thuộc vào giá trị trước đó của 'myDic [InputID]'? –
1UP cho tên biến "myDic"! –
bạn nên tránh truy cập bằng khóa trực tiếp 'myDic [InputID]' cho điều kiện chủng tộc. Bạn nên thử 'GetOrAdd' –