ループConcurrentDictionary
内にaを入力しています: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
スレッドセーフ であると仮定します。