一度に 1 つずつではなく、一度に複数のアイテムを 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 には常に 0 オブジェクトが含まれています。Concat<> はそのように機能しませんか? Add() メソッドを使用して、アイテムを一度に 1 つずつ ConcurrentBag に追加する必要がありますか?