Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

BlockingCollection<T>-Klasse

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Stellt Sperr- und Begrenzungsfunktionen für threadsichere Auflistungen bereit, die IProducerConsumerCollection<T> implementieren.

Namespace:   System.Collections.Concurrent
Assembly:  System (in System.dll)

System.Object
  System.Collections.Concurrent.BlockingCollection<T>

[ComVisibleAttribute(false)]
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
public class BlockingCollection<T> : IEnumerable<T>, IEnumerable, 
	ICollection, IDisposable, IReadOnlyCollection<T>

Typparameter

T

Der Typ der Elemente in der Auflistung.

NameBeschreibung
System_CAPS_pubmethodBlockingCollection<T>()

Initialisiert eine neue Instanz der BlockingCollection<T>-Klasse ohne obere Grenze.

System_CAPS_pubmethodBlockingCollection<T>(Int32)

Initialisiert eine neue Instanz der BlockingCollection<T>-Klasse mit der angegebenen oberen Grenze.

System_CAPS_pubmethodBlockingCollection<T>(IProducerConsumerCollection<T>)

Initialisiert eine neue Instanz der BlockingCollection<T>-Klasse ohne obere Grenze und unter Verwendung der angegebenen IProducerConsumerCollection<T> als zugrunde liegenden Datenspeicher.

System_CAPS_pubmethodBlockingCollection<T>(IProducerConsumerCollection<T>, Int32)

Initialisiert eine neue Instanz der BlockingCollection<T>-Klasse mit der angegebenen oberen Grenze und unter Verwendung der angegebenen IProducerConsumerCollection<T> als zugrunde liegenden Datenspeicher.

NameBeschreibung
System_CAPS_pubpropertyBoundedCapacity

Ruft die begrenzte Kapazität dieser BlockingCollection<T>-Instanz ab.

System_CAPS_pubpropertyCount

Ruft die Anzahl der Elemente in BlockingCollection<T> ab.

System_CAPS_pubpropertyIsAddingCompleted

Ruft ab, ob diese BlockingCollection<T> zum Hinzufügen als vollständig markiert wurde.

System_CAPS_pubpropertyIsCompleted

Ruft ab, ob diese BlockingCollection<T> zum Hinzufügen als vollständig markiert wurde und leer ist.

NameBeschreibung
System_CAPS_pubmethodAdd(T)

Fügt das Element der BlockingCollection<T> hinzu.

System_CAPS_pubmethodAdd(T, CancellationToken)

Fügt das Element der BlockingCollection<T> hinzu.

System_CAPS_pubmethodSystem_CAPS_staticAddToAny(BlockingCollection<T>[], T)

Fügt das angegebene Element einer der angegebenen BlockingCollection<T>-Instanzen hinzu.

System_CAPS_pubmethodSystem_CAPS_staticAddToAny(BlockingCollection<T>[], T, CancellationToken)

Fügt das angegebene Element einer der angegebenen BlockingCollection<T>-Instanzen hinzu.

System_CAPS_pubmethodCompleteAdding()

Markiert die BlockingCollection<T>-Instanzen als Instanzen, die keine weiteren Hinzufügungen annehmen.

System_CAPS_pubmethodCopyTo(T[], Int32)

Kopiert alle Elemente in der BlockingCollection<T>-Instanz in ein kompatibles eindimensionales Array, wobei am angegebenen Index des Zielarrays begonnen wird.

System_CAPS_pubmethodDispose()

Gibt alle von der aktuellen Instanz der BlockingCollection<T>-Klasse verwendeten Ressourcen frei.

System_CAPS_protmethodDispose(Boolean)

Gibt von der BlockingCollection<T>-Instanz verwendete Ressourcen frei.

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetConsumingEnumerable()

Stellt ein verwendetes IEnumerator<T> für Elemente in der Auflistung bereit.

System_CAPS_pubmethodGetConsumingEnumerable(CancellationToken)

Stellt ein verwendetes IEnumerable<T> für Elemente in der Auflistung bereit.

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodTake()

Entfernt ein Element aus BlockingCollection<T>.

System_CAPS_pubmethodTake(CancellationToken)

Entfernt ein Element aus BlockingCollection<T>.

System_CAPS_pubmethodSystem_CAPS_staticTakeFromAny(BlockingCollection<T>[], T)

Verwendet ein Element aus einer der angegebenen BlockingCollection<T>-Instanzen.

System_CAPS_pubmethodSystem_CAPS_staticTakeFromAny(BlockingCollection<T>[], T, CancellationToken)

Verwendet ein Element aus einer angegebenen BlockingCollection<T>-Instanz und berücksichtigt das angegebene Abbruchtoken.

System_CAPS_pubmethodToArray()

Kopiert die Elemente aus der BlockingCollection<T>-Instanz in ein neues Array.

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

System_CAPS_pubmethodTryAdd(T)

Versucht, der BlockingCollection<T> das angegebene Element hinzuzufügen.

System_CAPS_pubmethodTryAdd(T, Int32)

Versucht, das angegebene Element im angegebenen Zeitraum der BlockingCollection<T> hinzuzufügen.

System_CAPS_pubmethodTryAdd(T, Int32, CancellationToken)

Versucht, das angegebene Element unter Berücksichtigung des Abbruchtokens im angegebenen Zeitraum der BlockingCollection<T> hinzuzufügen.

System_CAPS_pubmethodTryAdd(T, TimeSpan)

Versucht, der BlockingCollection<T> das angegebene Element hinzuzufügen.

System_CAPS_pubmethodSystem_CAPS_staticTryAddToAny(BlockingCollection<T>[], T)

Versucht, einer der angegebenen BlockingCollection<T>-Instanzen das angegebene Element hinzuzufügen.

System_CAPS_pubmethodSystem_CAPS_staticTryAddToAny(BlockingCollection<T>[], T, Int32)

Versucht, einer der angegebenen BlockingCollection<T>-Instanzen das angegebene Element hinzuzufügen.

System_CAPS_pubmethodSystem_CAPS_staticTryAddToAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Versucht, einer der angegebenen BlockingCollection<T>-Instanzen das angegebene Element hinzuzufügen.

System_CAPS_pubmethodSystem_CAPS_staticTryAddToAny(BlockingCollection<T>[], T, TimeSpan)

Versucht, das angegebene Element einer angegebenen BlockingCollection<T>-Instanz hinzuzufügen und berücksichtigt das angegebene Abbruchtoken.

System_CAPS_pubmethodTryTake(T)

Versucht, ein Element aus der BlockingCollection<T> zu entfernen.

System_CAPS_pubmethodTryTake(T, Int32)

Versucht, ein Element im angegebenen Zeitraum aus der BlockingCollection<T> zu entfernen.

System_CAPS_pubmethodTryTake(T, Int32, CancellationToken)

Versucht, ein Element unter Berücksichtigung des Abbruchtokens im angegebenen Zeitraum aus der BlockingCollection<T> zu entfernen.

System_CAPS_pubmethodTryTake(T, TimeSpan)

Versucht, ein Element im angegebenen Zeitraum aus der BlockingCollection<T> zu entfernen.

System_CAPS_pubmethodSystem_CAPS_staticTryTakeFromAny(BlockingCollection<T>[], T)

Versucht, ein Element aus einer der angegebenen BlockingCollection<T>-Instanzen zu entfernen.

System_CAPS_pubmethodSystem_CAPS_staticTryTakeFromAny(BlockingCollection<T>[], T, Int32)

Versucht, ein Element aus einer der angegebenen BlockingCollection<T>-Instanzen zu entfernen.

System_CAPS_pubmethodSystem_CAPS_staticTryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)

Versucht, ein Element aus einer der angegebenen BlockingCollection<T>-Instanzen zu entfernen.

System_CAPS_pubmethodSystem_CAPS_staticTryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)

Versucht, ein Element aus einer der angegebenen BlockingCollection<T>-Instanzen zu entfernen.

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable<T>.GetEnumerator()

Stellt einen IEnumerator<T> für Elemente in der Auflistung bereit.

System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Kopiert alle Elemente in der BlockingCollection<T>-Instanz in ein kompatibles eindimensionales Array, wobei am angegebenen Index des Zielarrays begonnen wird.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Stellt einen IEnumerator für Elemente in der Auflistung bereit.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection synchronisiert ist.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf ICollection synchronisiert werden kann. Diese Eigenschaft wird nicht unterstützt.

NameBeschreibung
System_CAPS_pubmethodAggregate<T>(Func<T, T, T>)

Überladen. Wendet eine Akkumulatorfunktion auf eine Sequenz an.(Definiert durch Enumerable.)

System_CAPS_pubmethodAggregate<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>)

Überladen. Wendet eine Akkumulatorfunktion auf eine Sequenz an. Der angegebene Startwert wird als erster Akkumulatorwert verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodAggregate<T, TAccumulate, TResult>(TAccumulate, Func<TAccumulate, T, TAccumulate>, Func<TAccumulate, TResult>)

Überladen. Wendet eine Akkumulatorfunktion auf eine Sequenz an. Der angegebene Startwert wird als erster Akkumulatorwert verwendet, und der Ergebniswert wird mit der angegebenen Funktion ausgewählt.(Definiert durch Enumerable.)

System_CAPS_pubmethodAll<T>(Func<T, Boolean>)

Bestimmt, ob alle Elemente einer Sequenz eine Bedingung erfüllen.(Definiert durch Enumerable.)

System_CAPS_pubmethodAny<T>()

Überladen. Bestimmt, ob eine Sequenz Elemente enthält.(Definiert durch Enumerable.)

System_CAPS_pubmethodAny<T>(Func<T, Boolean>)

Überladen. Bestimmt, ob ein Element einer Sequenz eine Bedingung erfüllt.(Definiert durch Enumerable.)

System_CAPS_pubmethodAsEnumerable<T>()

Gibt die Eingabe als IEnumerable<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodAsParallel()

Überladen. Ermöglicht die Parallelisierung einer Abfrage.(Definiert durch ParallelEnumerable.)

System_CAPS_pubmethodAsParallel<T>()

Überladen. Ermöglicht die Parallelisierung einer Abfrage.(Definiert durch ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Überladen. Konvertiert ein IEnumerable zu einer IQueryable.(Definiert durch Queryable.)

System_CAPS_pubmethodAsQueryable<T>()

Überladen. Konvertiert ein generisches IEnumerable<T> auf einen generischen IQueryable<T>.(Definiert durch Queryable.)

System_CAPS_pubmethodAverage<T>(Func<T, Decimal>)

Überladen. Berechnet den Durchschnitt einer Sequenz von Decimal Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Double>)

Überladen. Berechnet den Durchschnitt einer Sequenz von Double Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Int32>)

Überladen. Berechnet den Durchschnitt einer Sequenz von Int32 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Int64>)

Überladen. Berechnet den Durchschnitt einer Sequenz von Int64 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Nullable<Decimal>>)

Überladen. Berechnet den Durchschnitt einer Sequenz von NULL-Werte zu Decimal Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Nullable<Double>>)

Überladen. Berechnet den Durchschnitt einer Sequenz von NULL-Werte zu Double Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Nullable<Int32>>)

Überladen. Berechnet den Durchschnitt einer Sequenz von NULL-Werte zu Int32 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Nullable<Int64>>)

Überladen. Berechnet den Durchschnitt einer Sequenz von NULL-Werte zu Int64 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Nullable<Single>>)

Überladen. Berechnet den Durchschnitt einer Sequenz von NULL-Werte zu Single Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodAverage<T>(Func<T, Single>)

Überladen. Berechnet den Durchschnitt einer Sequenz von Single Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodCast<TResult>()

Wandelt die Elemente einer IEnumerable in den angegebenen Typ.(Definiert durch Enumerable.)

System_CAPS_pubmethodConcat<T>(IEnumerable<T>)

Verkettet zwei Sequenzen.(Definiert durch Enumerable.)

System_CAPS_pubmethodContains<T>(T)

Überladen. Bestimmt, ob eine Sequenz ein angegebenes Element enthält, mithilfe des Standardgleichheitsvergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodContains<T>(T, IEqualityComparer<T>)

Überladen. Bestimmt, ob eine Sequenz ein angegebenes Element enthält, mit einem angegebenen IEqualityComparer<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodCount<T>()

Überladen. Gibt die Anzahl der Elemente in einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodCount<T>(Func<T, Boolean>)

Überladen. Gibt eine Zahl, die darstellt, wie viele Elemente in der angegebenen Sequenz eine Bedingung erfüllen.(Definiert durch Enumerable.)

System_CAPS_pubmethodDefaultIfEmpty<T>()

Überladen. Gibt die Elemente der angegebenen Sequenz oder den Standardwert des Typparameters in einer singletonauflistung zurück, wenn die Sequenz leer ist.(Definiert durch Enumerable.)

System_CAPS_pubmethodDefaultIfEmpty<T>(T)

Überladen. Gibt die Elemente der angegebenen Sequenz oder den angegebenen Wert in einer singletonauflistung zurück, wenn die Sequenz leer ist.(Definiert durch Enumerable.)

System_CAPS_pubmethodDistinct<T>()

Überladen. Gibt Sie mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten unterschiedliche Elemente aus einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodDistinct<T>(IEqualityComparer<T>)

Überladen. Gibt unterschiedliche Elemente aus einer Sequenz mithilfe eines angegebenen IEqualityComparer<T> zum Vergleichen von Werten.(Definiert durch Enumerable.)

System_CAPS_pubmethodElementAt<T>(Int32)

Gibt das Element am angegebenen Index in einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodElementAtOrDefault<T>(Int32)

Gibt das Element an einem angegebenen Index in einer Sequenz oder einen Standardwert zurück, wenn der Index außerhalb des gültigen Bereichs liegt.(Definiert durch Enumerable.)

System_CAPS_pubmethodExcept<T>(IEnumerable<T>)

Überladen. Erzeugt die Differenzmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten.(Definiert durch Enumerable.)

System_CAPS_pubmethodExcept<T>(IEnumerable<T>, IEqualityComparer<T>)

Überladen. Erzeugt die Differenzmenge von zwei Sequenzen unter Verwendung des angegebenen IEqualityComparer<T> zum Vergleichen von Werten.(Definiert durch Enumerable.)

System_CAPS_pubmethodFirst<T>()

Überladen. Gibt das erste Element einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodFirst<T>(Func<T, Boolean>)

Überladen. Gibt das erste Element in einer Sequenz zurück, das eine angegebene Bedingung erfüllt.(Definiert durch Enumerable.)

System_CAPS_pubmethodFirstOrDefault<T>()

Überladen. Gibt das erste Element einer Sequenz oder einen Standardwert zurück, wenn die Sequenz keine Elemente enthält.(Definiert durch Enumerable.)

System_CAPS_pubmethodFirstOrDefault<T>(Func<T, Boolean>)

Überladen. Gibt das erste Element der Sequenz zurück, das eine Bedingung erfüllt, oder einen Standardwert, wenn ein solches Element nicht gefunden wird.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey>(Func<T, TKey>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und vergleicht die Schlüssel mithilfe eines angegebenen Vergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und projiziert die Elemente für jede Gruppe mithilfe einer angegebenen Funktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer Schlüsselauswahlfunktion. Die Schlüssel werden mithilfe eines Vergleichs verglichen, und die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TResult>(Func<T, TKey>, Func<TKey, IEnumerable<T>, TResult>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TResult>(Func<T, TKey>, Func<TKey, IEnumerable<T>, TResult>, IEqualityComparer<TKey>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert. Die Schlüssel werden mithilfe eines angegebenen Vergleichs verglichen.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TElement, TResult>(Func<T, TKey>, Func<T, TElement>, Func<TKey, IEnumerable<TElement>, TResult>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert. Die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupBy<T, TKey, TElement, TResult>(Func<T, TKey>, Func<T, TElement>, Func<TKey, IEnumerable<TElement>, TResult>, IEqualityComparer<TKey>)

Überladen. Gruppiert die Elemente einer Sequenz entsprechend einer angegebenen Schlüsselauswahlfunktion und erstellt aus jeder Gruppe und ihrem Schlüssel einen Ergebniswert. Schlüsselwerte werden mithilfe eines angegebenen Vergleichs verglichen, und die Elemente jeder Gruppe werden mithilfe einer angegebenen Funktion projiziert.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupJoin<T, TInner, TKey, TResult>(IEnumerable<TInner>, Func<T, TKey>, Func<TInner, TKey>, Func<T, IEnumerable<TInner>, TResult>)

Überladen. Korreliert die Elemente zweier Sequenzen basierend auf der Gleichheit der Schlüssel und gruppiert die Ergebnisse. Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen.(Definiert durch Enumerable.)

System_CAPS_pubmethodGroupJoin<T, TInner, TKey, TResult>(IEnumerable<TInner>, Func<T, TKey>, Func<TInner, TKey>, Func<T, IEnumerable<TInner>, TResult>, IEqualityComparer<TKey>)

Überladen. Korreliert die Elemente zweier Sequenzen basierend auf der Gleichheit der Schlüssel und gruppiert die Ergebnisse. Schlüssel werden mithilfe eines angegebenen IEqualityComparer<T> verglichen.(Definiert durch Enumerable.)

System_CAPS_pubmethodIntersect<T>(IEnumerable<T>)

Überladen. Erzeugt die Schnittmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs zum Vergleichen von Werten.(Definiert durch Enumerable.)

System_CAPS_pubmethodIntersect<T>(IEnumerable<T>, IEqualityComparer<T>)

Überladen. Erzeugt die Schnittmenge von zwei Sequenzen unter Verwendung des angegebenen IEqualityComparer<T> zum Vergleichen von Werten.(Definiert durch Enumerable.)

System_CAPS_pubmethodJoin<T, TInner, TKey, TResult>(IEnumerable<TInner>, Func<T, TKey>, Func<TInner, TKey>, Func<T, TInner, TResult>)

Überladen. Korreliert die Elemente zweier Sequenzen basierend auf übereinstimmenden Schlüsseln. Schlüssel werden mithilfe des Standardgleichheitsvergleichs verglichen.(Definiert durch Enumerable.)

System_CAPS_pubmethodJoin<T, TInner, TKey, TResult>(IEnumerable<TInner>, Func<T, TKey>, Func<TInner, TKey>, Func<T, TInner, TResult>, IEqualityComparer<TKey>)

Überladen. Korreliert die Elemente zweier Sequenzen basierend auf übereinstimmenden Schlüsseln. Schlüssel werden mithilfe eines angegebenen IEqualityComparer<T> verglichen.(Definiert durch Enumerable.)

System_CAPS_pubmethodLast<T>()

Überladen. Gibt das letzte Element einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodLast<T>(Func<T, Boolean>)

Überladen. Gibt das letzte Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt.(Definiert durch Enumerable.)

System_CAPS_pubmethodLastOrDefault<T>()

Überladen. Gibt das letzte Element einer Sequenz oder einen Standardwert zurück, wenn die Sequenz keine Elemente enthält.(Definiert durch Enumerable.)

System_CAPS_pubmethodLastOrDefault<T>(Func<T, Boolean>)

Überladen. Gibt das letzte Element einer Sequenz, das eine Bedingung erfüllt, oder einen Standardwert zurück, wenn ein solches Element nicht gefunden wird.(Definiert durch Enumerable.)

System_CAPS_pubmethodLongCount<T>()

Überladen. Gibt eine Int64 , die die Gesamtanzahl von Elementen in einer Sequenz darstellt.(Definiert durch Enumerable.)

System_CAPS_pubmethodLongCount<T>(Func<T, Boolean>)

Überladen. Gibt ein Int64 das darstellt, wie viele Elemente in einer Sequenz eine Bedingung erfüllen.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>()

Überladen. Gibt den Maximalwert in einer generischen Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Decimal>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt die maximale Decimal Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Double>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt die maximale Double Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Int32>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt die maximale Int32 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Int64>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt die maximale Int64 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Nullable<Decimal>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den Höchstwert zurück auf NULL festlegbare Decimal Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Nullable<Double>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den Höchstwert zurück auf NULL festlegbare Double Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Nullable<Int32>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den Höchstwert zurück auf NULL festlegbare Int32 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Nullable<Int64>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den Höchstwert zurück auf NULL festlegbare Int64 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Nullable<Single>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den Höchstwert zurück auf NULL festlegbare Single Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T>(Func<T, Single>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt die maximale Single Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMax<T, TResult>(Func<T, TResult>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer generischen Sequenz und gibt den höchsten Ergebniswert zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>()

Überladen. Gibt den Mindestwert in einer generischen Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Decimal>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt den kleinsten Decimal Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Double>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt den kleinsten Double Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Int32>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt den kleinsten Int32 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Int64>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt den kleinsten Int64 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Nullable<Decimal>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den kleinsten NULL-Werte zu Decimal Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Nullable<Double>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den kleinsten NULL-Werte zu Double Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Nullable<Int32>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den kleinsten NULL-Werte zu Int32 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Nullable<Int64>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den kleinsten NULL-Werte zu Int64 Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Nullable<Single>>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer Sequenz und gibt den kleinsten NULL-Werte zu Single Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T>(Func<T, Single>)

Überladen. Ruft für jedes Element einer Sequenz eine Transformationsfunktion auf und gibt den kleinsten Single Wert.(Definiert durch Enumerable.)

System_CAPS_pubmethodMin<T, TResult>(Func<T, TResult>)

Überladen. Ruft eine Transformationsfunktion für jedes Element einer generischen Sequenz und gibt den niedrigsten Ergebniswert zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtert die Elemente einer IEnumerable auf Grundlage eines angegebenen Typs.(Definiert durch Enumerable.)

System_CAPS_pubmethodOrderBy<T, TKey>(Func<T, TKey>)

Überladen. Sortiert die Elemente einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel.(Definiert durch Enumerable.)

System_CAPS_pubmethodOrderBy<T, TKey>(Func<T, TKey>, IComparer<TKey>)

Überladen. Sortiert die Elemente einer Sequenz in aufsteigender Reihenfolge mithilfe eines angegebenen Vergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodOrderByDescending<T, TKey>(Func<T, TKey>)

Überladen. Sortiert die Elemente einer Sequenz in absteigender Reihenfolge nach einem Schlüssel.(Definiert durch Enumerable.)

System_CAPS_pubmethodOrderByDescending<T, TKey>(Func<T, TKey>, IComparer<TKey>)

Überladen. Sortiert die Elemente einer Sequenz mithilfe eines angegebenen Vergleichs in absteigender Reihenfolge.(Definiert durch Enumerable.)

System_CAPS_pubmethodReverse<T>()

Kehrt die Reihenfolge der Elemente in einer Sequenz.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelect<T, TResult>(Func<T, TResult>)

Überladen. Projiziert jedes Element einer Sequenz in ein neues Format.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelect<T, TResult>(Func<T, Int32, TResult>)

Überladen. Projiziert jedes Element einer Sequenz in ein neues Formular durch den Index des Elements integriert wird.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelectMany<T, TResult>(Func<T, IEnumerable<TResult>>)

Überladen. Projiziert jedes Element einer Sequenz in ein IEnumerable<T> und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelectMany<T, TResult>(Func<T, Int32, IEnumerable<TResult>>)

Überladen. Projiziert jedes Element einer Sequenz in ein IEnumerable<T>, und fasst die resultierenden Sequenzen in einer einzigen Sequenz zusammen. Der Index jedes Quellelements wird im projizierten Format des jeweiligen Elements verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelectMany<T, TCollection, TResult>(Func<T, IEnumerable<TCollection>>, Func<T, TCollection, TResult>)

Überladen. Projiziert jedes Element einer Sequenz in ein IEnumerable<T>, fasst die resultierenden Sequenzen zu einer einzigen Sequenz zusammen und ruft für jedes Element in dieser Sequenz eine Ergebnisauswahlfunktion auf.(Definiert durch Enumerable.)

System_CAPS_pubmethodSelectMany<T, TCollection, TResult>(Func<T, Int32, IEnumerable<TCollection>>, Func<T, TCollection, TResult>)

Überladen. Projiziert jedes Element einer Sequenz in ein IEnumerable<T>, fasst die resultierenden Sequenzen zu einer einzigen Sequenz zusammen und ruft für jedes Element in dieser Sequenz eine Ergebnisauswahlfunktion auf. Der Index jedes Quellelements wird im projizierten Zwischenformat des jeweiligen Elements verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodSequenceEqual<T>(IEnumerable<T>)

Überladen. Bestimmt, ob zwei Sequenzen gleich sind, indem die Elemente mithilfe des Standardgleichheitsvergleichs für ihren Typ verglichen werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSequenceEqual<T>(IEnumerable<T>, IEqualityComparer<T>)

Überladen. Bestimmt, ob zwei Sequenzen gleich sind, indem ihre Elemente mithilfe eines angegebenen verglichen IEqualityComparer<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodSingle<T>()

Überladen. Gibt das einzige Element einer Sequenz zurück und löst eine Ausnahme aus, wenn nicht genau ein Element in der Sequenz vorhanden ist.(Definiert durch Enumerable.)

System_CAPS_pubmethodSingle<T>(Func<T, Boolean>)

Überladen. Gibt das einzige Element einer Sequenz zurück, das eine angegebene Bedingung erfüllt, und löst eine Ausnahme aus, wenn mehrere solche Elemente vorhanden sind.(Definiert durch Enumerable.)

System_CAPS_pubmethodSingleOrDefault<T>()

Überladen. Gibt das einzige Element einer Sequenz bzw. einen Standardwert zurück, wenn die Sequenz leer ist. Diese Methode löst eine Ausnahme aus, wenn mehr als ein Element in der Sequenz vorhanden ist.(Definiert durch Enumerable.)

System_CAPS_pubmethodSingleOrDefault<T>(Func<T, Boolean>)

Überladen. Gibt das einzige Element einer Sequenz, das eine angegebene Bedingung erfüllt, oder einen Standardwert zurück, wenn kein solches Element vorhanden ist. Diese Methode löst eine Ausnahme aus, wenn mehrere Elemente die Bedingung erfüllen.(Definiert durch Enumerable.)

System_CAPS_pubmethodSkip<T>(Int32)

Umgeht eine festgelegte Anzahl von Elementen in einer Sequenz und gibt dann die übrigen Elemente zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodSkipWhile<T>(Func<T, Boolean>)

Überladen. Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodSkipWhile<T>(Func<T, Int32, Boolean>)

Überladen. Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück. In der Logik der Prädikatfunktion wird der Index des Elements verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Decimal>)

Überladen. Berechnet die Summe einer Sequenz von Decimal Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Double>)

Überladen. Berechnet die Summe einer Sequenz von Double Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Int32>)

Überladen. Berechnet die Summe einer Sequenz von Int32 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Int64>)

Überladen. Berechnet die Summe einer Sequenz von Int64 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Nullable<Decimal>>)

Überladen. Berechnet die Summe einer Sequenz von NULL-Werte zu Decimal Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Nullable<Double>>)

Überladen. Berechnet die Summe einer Sequenz von NULL-Werte zu Double Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Nullable<Int32>>)

Überladen. Berechnet die Summe einer Sequenz von NULL-Werte zu Int32 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Nullable<Int64>>)

Überladen. Berechnet die Summe einer Sequenz von NULL-Werte zu Int64 Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Nullable<Single>>)

Überladen. Berechnet die Summe einer Sequenz von NULL-Werte zu Single Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodSum<T>(Func<T, Single>)

Überladen. Berechnet die Summe einer Sequenz von Single Werte, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden.(Definiert durch Enumerable.)

System_CAPS_pubmethodTake<T>(Int32)

Gibt eine angegebene Anzahl von zusammenhängenden Elementen ab dem Anfang einer Sequenz zurück.(Definiert durch Enumerable.)

System_CAPS_pubmethodTakeWhile<T>(Func<T, Boolean>)

Überladen. Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist.(Definiert durch Enumerable.)

System_CAPS_pubmethodTakeWhile<T>(Func<T, Int32, Boolean>)

Überladen. Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung true ist. In der Logik der Prädikatfunktion wird der Index des Elements verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodToArray<T>()

Erstellt ein Array aus einem IEnumerable<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodToDictionary<T, TKey>(Func<T, TKey>)

Überladen. Erstellt eine Dictionary<TKey, TValue> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodToDictionary<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>)

Überladen. Erstellt eine Dictionary<TKey, TValue> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion und eines angegebenen Schlüsselvergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>)

Überladen. Erstellt eine Dictionary<TKey, TValue> aus einem IEnumerable<T> entsprechend der angegebenen Schlüsselauswahlfunktion und Elementauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodToDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>)

Überladen. Erstellt eine Dictionary<TKey, TValue> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion, einem Vergleich und einer Elementauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodToList<T>()

Erstellt ein List<T> aus einem IEnumerable<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodToLookup<T, TKey>(Func<T, TKey>)

Überladen. Erstellt eine Lookup<TKey, TElement> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodToLookup<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>)

Überladen. Erstellt eine Lookup<TKey, TElement> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion und eines angegebenen Schlüsselvergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>)

Überladen. Erstellt eine Lookup<TKey, TElement> aus einem IEnumerable<T> entsprechend der angegebenen Schlüsselauswahlfunktion und Elementauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>)

Überladen. Erstellt eine Lookup<TKey, TElement> aus einem IEnumerable<T> entsprechend einer angegebenen Schlüsselauswahlfunktion, einem Vergleich und einer Elementauswahlfunktion.(Definiert durch Enumerable.)

System_CAPS_pubmethodUnion<T>(IEnumerable<T>)

Überladen. Erzeugt die Vereinigungsmenge von zwei Sequenzen mithilfe des Standardgleichheitsvergleichs.(Definiert durch Enumerable.)

System_CAPS_pubmethodUnion<T>(IEnumerable<T>, IEqualityComparer<T>)

Überladen. Erzeugt die Vereinigungsmenge von zwei Sequenzen mithilfe eines angegebenen IEqualityComparer<T>.(Definiert durch Enumerable.)

System_CAPS_pubmethodWhere<T>(Func<T, Boolean>)

Überladen. Filtert eine Sequenz von Werten basierend auf einem Prädikat.(Definiert durch Enumerable.)

System_CAPS_pubmethodWhere<T>(Func<T, Int32, Boolean>)

Überladen. Filtert eine Sequenz von Werten basierend auf einem Prädikat. In der Logik der Prädikatfunktion wird der Index der einzelnen Elemente verwendet.(Definiert durch Enumerable.)

System_CAPS_pubmethodZip<T, TSecond, TResult>(IEnumerable<TSecond>, Func<T, TSecond, TResult>)

Wendet eine angegebene Funktion auf die entsprechenden Elemente von zwei Sequenzen eine Sequenz der Ergebnisse erzeugen.(Definiert durch Enumerable.)

BlockingCollection<T> ist eine threadsichere Auflistung-Klasse, die Folgendes bietet:

  • Eine Implementierung des Musters Erzeuger-Verbraucher; BlockingCollection<T> ist ein Wrapper für die IProducerConsumerCollection<T> Schnittstelle.

  • Gleichzeitige hinzufügen und Entfernen von Elementen aus mehreren Threads mit der Add und Take Methoden.

  • Eine gebundene Auflistung, die blockiert, Add und Take Vorgänge, wenn die Auflistung voll oder leer ist.

  • Abbruch des Add oder Take Vorgänge mit einer CancellationToken -Objekt in die TryAdd oder TryTake Methode.

System_CAPS_importantWichtig

Dieser Typ implementiert die IDisposable Schnittstelle. Wenn Sie mit dem Datentyp haben, sollten Sie es entweder direkt oder indirekt freigeben. Damit des Typs direkt freigegeben werden, rufen Sie seine Dispose -Methode in eine try/catch Block. Verwenden, um es indirekt freigegeben werden, z. B. ein Sprachkonstrukt using (in c#) oder Using (in Visual Basic). Weitere Informationen finden Sie im Abschnitt "Verwenden eines Objekts, die implementiert IDisposable" in der IDisposable Thema zur Schnittstelle. Beachten Sie außerdem, dass die Dispose() Methode ist nicht threadsicher. Alle anderen öffentlichen und geschützten Member der BlockingCollection<T> sind threadsicher und können von mehreren Threads gleichzeitig verwendet werden.

IProducerConsumerCollection<T> Stellt eine Auflistung, die für threadsichere hinzufügen und Entfernen von Daten ermöglicht. BlockingCollection<T> Dient als Wrapper für eine IProducerConsumerCollection<T> Instanz, und ermöglicht das Entfernen des Versuche aus der Auflistung blockiert, bis zu entfernende Daten verfügbar sind. Auf ähnliche Weise können Sie erstellen eine BlockingCollection<T> eine Obergrenze für die Anzahl der Datenelemente in zulässigen Erzwingen der IProducerConsumerCollection<T>; außerdem versucht, die Auflistung blockieren möglicherweise dann, bis Platz ist, um die hinzugefügten Elemente zu speichern. Auf diese Weise BlockingCollection<T> ähnelt einer herkömmlichen Blockierungswarteschlangendatenstruktur, außer dass die zugrunde liegenden sofort als wegabstrahiert ist ein IProducerConsumerCollection<T>.

BlockingCollection<T> unterstützt das umgebende und blockieren. Durch Begrenzung können Sie die maximale Kapazität der Auflistung festlegen. Umgebenden ist in bestimmten Szenarien wichtig, da es Sie die maximale Größe der Auflistung im Arbeitsspeicher zu steuern können und verhindert, dass die Threads erzeugen zu weit im voraus die verarbeitende Threads verschieben. Mehrere Threads oder Aufgaben können Elemente der Auflistung hinzufügen gleichzeitig, und wenn die Auflistung die angegebene maximale Kapazität erreicht, wird die erzeugenden Threads blockiert, bis ein Element entfernt wird. Mehrere Consumer können gleichzeitig Elemente entfernen, und wenn die Auflistung leer ist, wird die verarbeitende Threads blockiert, bis ein Producer ein Element hinzufügt. Ein Producer-Thread aufrufen, kann die CompleteAdding Methode, um anzugeben, dass keine Elemente mehr hinzugefügt werden. Consumern überwacht die IsCompleted Eigenschaft kennen, wenn die Auflistung leer ist und keine Elemente mehr hinzugefügt werden.

Add und Take Vorgänge werden in der Regel in einer Schleife ausgeführt. Können Sie eine Schleife durch die Übergabe Abbrechen ein CancellationToken -Objekt an die TryAdd oder TryTake -Methode, und dann überprüfen, ob den Wert, der des Tokens IsCancellationRequested Eigenschaft in jeder Iteration. Wenn der Wert true, liegt bei Ihnen die abbruchanforderung reagieren, indem Sie alle Ressourcen bereinigen und Beenden der Schleife.

Beim Erstellen einer BlockingCollection<T> -Objekt, können Sie angeben, nicht nur die begrenzte Kapazität, sondern auch der Typ der Auflistung verwendet. Sie könnten z. B. angeben ein ConcurrentQueue<T> Objekt für First in, first out (FIFO)-Verhalten oder eine ConcurrentStack<T> Objekt für die Last in, first out (LIFO)-Verhalten. Sie können jede Auflistungsklasse, die implementiert die IProducerConsumerCollection<T> Schnittstelle. Der standardmäßige Auflistungstyp für BlockingCollection<T> ist ConcurrentQueue<T>.

Die zugrunde liegende Auflistung nicht direkt geändert werden. Verwendung BlockingCollection<T> Methoden zum Hinzufügen oder Entfernen von Elementen. Das BlockingCollection<T> Objekt kann beschädigt werden, wenn die zugrunde liegende Auflistung direkt ändern.

Das folgende Beispiel zeigt, wie Sie von einer blockierenden Auflistung gleichzeitig Elemente hinzufügen bzw. entfernen:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

class BlockingCollectionDemo
{
    static void Main()
    {
        AddTakeDemo.BC_AddTakeCompleteAdding();
        TryTakeDemo.BC_TryTake();
        FromToAnyDemo.BC_FromToAny();
        ConsumingEnumerableDemo.BC_GetConsumingEnumerable();
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
class AddTakeDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.Take()
    //      BlockingCollection<T>.CompleteAdding()
    public static void BC_AddTakeCompleteAdding()
    {
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {

            // Spin up a Task to populate the BlockingCollection 
            using (Task t1 = Task.Factory.StartNew(() =>
            {
                bc.Add(1);
                bc.Add(2);
                bc.Add(3);
                bc.CompleteAdding();
            }))
            {

                // Spin up a Task to consume the BlockingCollection
                using (Task t2 = Task.Factory.StartNew(() =>
                {
                    try
                    {
                        // Consume consume the BlockingCollection
                        while (true) Console.WriteLine(bc.Take());
                    }
                    catch (InvalidOperationException)
                    {
                        // An InvalidOperationException means that Take() was called on a completed collection
                        Console.WriteLine("That's All!");
                    }
                }))

                    Task.WaitAll(t1, t2);
            }
        }
    }
}

class TryTakeDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.TryTake()
    //      BlockingCollection<T>.IsCompleted
    public static void BC_TryTake()
    {
        // Construct and fill our BlockingCollection
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {
            int NUMITEMS = 10000;
            for (int i = 0; i < NUMITEMS; i++) bc.Add(i);
            bc.CompleteAdding();
            int outerSum = 0;

            // Delegate for consuming the BlockingCollection and adding up all items
            Action action = () =>
            {
                int localItem;
                int localSum = 0;

                while (bc.TryTake(out localItem)) localSum += localItem;
                Interlocked.Add(ref outerSum, localSum);
            };

            // Launch three parallel actions to consume the BlockingCollection
            Parallel.Invoke(action, action, action);

            Console.WriteLine("Sum[0..{0}) = {1}, should be {2}", NUMITEMS, outerSum, ((NUMITEMS*(NUMITEMS - 1))/2));
            Console.WriteLine("bc.IsCompleted = {0} (should be true)", bc.IsCompleted);
        }
    }
}

class FromToAnyDemo
{

    // Demonstrates:
    //      Bounded BlockingCollection<T>
    //      BlockingCollection<T>.TryAddToAny()
    //      BlockingCollection<T>.TryTakeFromAny()
    public static void BC_FromToAny()
    {
        BlockingCollection<int>[] bcs = new BlockingCollection<int>[2];
        bcs[0] = new BlockingCollection<int>(5); // collection bounded to 5 items
        bcs[1] = new BlockingCollection<int>(5); // collection bounded to 5 items

        // Should be able to add 10 items w/o blocking
        int numFailures = 0;
        for (int i = 0; i < 10; i++)
        {
            if (BlockingCollection<int>.TryAddToAny(bcs, i) == -1) numFailures++;
        }
        Console.WriteLine("TryAddToAny: {0} failures (should be 0)", numFailures);

        // Should be able to retrieve 10 items
        int numItems = 0;
        int item;
        while (BlockingCollection<int>.TryTakeFromAny(bcs, out item) != -1) numItems++;
        Console.WriteLine("TryTakeFromAny: retrieved {0} items (should be 10)", numItems);
    }
}

class ConsumingEnumerableDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.GetConsumingEnumerable()
    public static void BC_GetConsumingEnumerable()
    {
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {

            // Kick off a producer task
            Task.Factory.StartNew(() =>
            {
                for (int i = 0; i < 10; i++)
                {
                    bc.Add(i);
                    Thread.Sleep(100); // sleep 100 ms between adds
                }

                // Need to do this to keep foreach below from hanging
                bc.CompleteAdding();
            });

            // Now consume the blocking collection with foreach.
            // Use bc.GetConsumingEnumerable() instead of just bc because the
            // former will block waiting for completion and the latter will
            // simply take a snapshot of the current state of the underlying collection.
            foreach (var item in bc.GetConsumingEnumerable())
            {
                Console.WriteLine(item);
            }
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone
Verfügbar seit 8.1

Die Dispose-Methode ist nicht threadsicher. Alle anderen öffentlichen und geschützten Member der BlockingCollection<T> sind threadsicher und können von mehreren Threads gleichzeitig verwendet werden.

Zurück zum Anfang
Anzeigen: