我有一段C# .NET 4的代码,它在一个Parallel.For循环中向List添加内容。
我找不到确切的答案来确定这是否是线程安全的。
如果不安全的话,有什么替代方案吗?
static List<int> Calculate(List<string[]> numbers)
{
List<int> sums = new List<int>();
Parallel.ForEach(numbers,
(nums) =>
{
int sum = 0;
for (int i = 0; i < nums.Length; i++)
sum += Convert.ToInt32( nums[i]);
// is this thread safe or not???
sums.Add(sum);
});
sums.Sort();
return sums;
}