是字典<,电视>。项目[TKey] 属性线程可以安全设置,如果键已经在字典中?



在此之前,我已经读过这篇文章,我认为它没有回答我的问题。

我正在编写一个方法来更新字典的值。我不会插入或移除任何键

我打算这样做:

private static void Example(Dictionary<Individual, float> dict) {
var keys = dict.Keys.ToArray();
Parallel.For(0, keys.Length, i => {
var key = keys[i];
var newValue = DoHardMath(key);
dict[key] = newValue;
});         
}

这是线程安全的吗? 文档没有明确说明这一点。

你的问题很具体,但ConcurrentDictionary会避免焦虑。

多科斯在:

  • 并发字典类
  • 如何:在 ConcurrentDictionary 中添加和删除项

最新更新