有没有办法一次添加多个项目到ConcurrentBag,而不是一次一个?我没有看到ConcurrentBag上的AddRange()方法,但有一个Concat()。然而,这不是为我工作:ConcurrentBag - 添加多个项目?
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始终有0个对象。 Concat <>不是那样工作吗?我需要使用Add()方法一次向ConcurrentBag添加项目吗?
最后使用SelectMany。 – 2018-02-08 17:06:31