有没有一种方法可以一次性添加多个元素到ConcurrentBag中,而不是一个一个地添加?我没有在ConcurrentBag上看到AddRange()方法,但是有一个Concat()方法。然而,这对我来说不起作用:
ConcurrentBag<T> objectList = new ConcurrentBag<T>();
timeChunks.ForEach(timeChunk =>
{
List<T> newList = Foo.SomeMethod<T>(x => x.SomeReadTime > timeChunk.StartTime);
objectList.Concat<T>(newList);
});
这段代码曾经是在Parallel.ForEach()中运行的,但我将其更改为上面这种形式以便进行故障排查。变量newList确实有对象,但在objectList.Concat<>之后,objectList始终没有任何对象。Concat<>不是那样工作的吗?我是否需要使用Add()方法一个一个地向ConcurrentBag中添加项目?