在此之前,我已经读过这篇文章,我认为它没有回答我的问题。
我正在编写一个方法来更新字典的值。我不会插入或移除任何键。
我打算这样做:
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 中添加和删除项