此字典操作是线程安全的吗?

时间:2018-10-15 22:32:16

标签: c# asynchronous

我了解常规字典的读/写操作不是线程安全的。那这种情况怎么办?

class Data{ public int data{get; set;}}

var dict = new Dictionary<int, Data>();

这可以线程安全吗?

await Task.WhenAll(dict
.Select(async t => 
    t.Value.data = t.Value.data+1;
    await somefunc(t.Value.data);
);

有没有一种更好的方法可以重写此操作而不使用ConcurrentDictionary,因为只有一个实例需要支持此行为。

0 个答案:

没有答案