我正在循环填充ConcurrentDictionary
一个:Parallel.ForEach
var result = new ConcurrentDictionary<int, ItemCollection>();
Parallel.ForEach(allRoutes, route =>
{
// Some heavy operations
lock(result)
{
if (!result.ContainsKey(someKey))
{
result[someKey] = new ItemCollection();
}
result[someKey].Add(newItem);
}
}
如何在不使用 lock 语句的情况下以线程安全的方式执行最后一步?
编辑: 假设这ItemCollection
是线程安全的。