Gibt es eine Möglichkeit, mehrere Elemente gleichzeitig zu ConcurrentBag hinzuzufügen, statt einzeln? Ich sehe keine AddRange() -Methode auf ConcurrentBag, aber es gibt eine Concat(). Allerdings arbeitet das ist nicht für mich:ConcurrentBag - Mehrere Elemente hinzufügen?
ConcurrentBag<T> objectList = new ConcurrentBag<T>();
timeChunks.ForEach(timeChunk =>
{
List<T> newList = Foo.SomeMethod<T>(x => x.SomeReadTime > timeChunk.StartTime);
objectList.Concat<T>(newList);
});
Dieser Code wird verwendet in einem Parallel.ForEach() zu sein, aber ich änderte es zu der oben so konnte ich es beheben. Die Variable newList hat zwar Objekte, aber nach der objectList.Concat <> Zeile hat objectList immer 0 Objekte. Funktioniert Concat <> nicht so? Muss ich mit der Add() - Methode nacheinander Elemente zu ConcurrentBag hinzufügen?
Verwenden Sie am Ende SelectMany. –