我正在使用Parallel.Foreach填充外部ConcurrentBag。我也尝试使用通用列表,并且一切正常。

我很幸运还是错过了ConcurrentBag的特殊范围?

最佳答案

你真幸运; Parallel.ForEach填充列表不是线程安全的,最终会遇到问题。

根据MSDN,List<T>不是线程安全的:



ConcurrentBag是您应该使用的工具,它对多个读取器和写入器都是线程安全的。

10-04 18:01