ja wa nie do utrzymania się lista kilku BlockingCollectionsJest listą <BlockingCollection <T>> Gwint bezpieczny?
List<BlockingCollection<ExtDocument>> a = new List<BlockingCollection<ExtDocument>>();
a zameldowanie subthreads jeśli któryś z „kolejek” jeszcze pozycje w oczekiwaniu:
if (a.Where(x => x.IsAddingCompleted).Count > 0)
Czy korzystanie z List<T>
w tym przypadku wątek bezpieczny , jeśli liczba pozycji na liście nie ulegnie zmianie po inicjalizacji (zawartość list blokujących wewnątrz kolekcji zmieni kurs ...)?
Albo powinienem zdecydować się na array of BlockingCollection
lub następującej budowie:
BlockingCollection<BlockingCollection<workitem>> a = new BlockingCollection<BlockingCollection<workitem>>();
Jeśli lista nie zmieni się po inicjalizacji, po prostu użyj listy. Tylko czytanie nie jest problemem w przypadku współbieżności, ale jego zmienność sprawia, że ostatecznie staje się problemem. – Caramiriel
Wolałbym użyć tablicy zamiast 'List'. W ten sposób jest bardziej przejrzyste, że liczba elementów się nie zmieni. –
CodesInChaos
@Caramiriel Dziękujemy za informacje! CodesInChaos: Dzięki za cynk. To rzeczywiście zwiększy czytelność dla przyszłych programistów – User999999