BlockingCollection<T>.TryTakeFromAny Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen.
Überlädt
| Name | Beschreibung |
|---|---|
| TryTakeFromAny(BlockingCollection<T>[], T) |
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen. |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen. |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen. |
| TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen. |
TryTakeFromAny(BlockingCollection<T>[], T)
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen.
public:
static int TryTakeFromAny(cli::array <System::Collections::Concurrent::BlockingCollection<T> ^> ^ collections, [Runtime::InteropServices::Out] T % item);
public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection<T>[] collections, out T item);
static member TryTakeFromAny : System.Collections.Concurrent.BlockingCollection<'T>[] * 'T -> int
Public Shared Function TryTakeFromAny (collections As BlockingCollection(Of T)(), ByRef item As T) As Integer
Parameter
- collections
- BlockingCollection<T>[]
Das Array von Sammlungen.
- item
- T
Das Element, das aus einer der Auflistungen entfernt wurde.
Gibt zurück
Der Index der Auflistung im collections Array, aus dem das Element entfernt wurde, oder -1, wenn ein Element nicht entfernt werden konnte.
Ausnahmen
Mindestens eine der BlockingCollection<T> Instanzen wurde verworfen.
Das collections Argument ist NULL.
Die Anzahl ist collections größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections Argument ist ein Array mit 0 Länge oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb der BlockingCollection<T> Instanz geändert.
Beispiele
Das folgende Beispiel zeigt, wie die BlockingCollection<T>.TryTakeFromAny Methode verwendet wird:
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);
}
}
module FromToAnyDemo =
// Demonstrates:
// Bounded BlockingCollection<T>
// BlockingCollection<T>.TryAddToAny()
// BlockingCollection<T>.TryTakeFromAny()
let blockingCollectionFromToAny () =
let bcs =
[|
new BlockingCollection<int>(5) // collection bounded to 5 items
new BlockingCollection<int>(5) // collection bounded to 5 items
|]
// Should be able to add 10 items w/o blocking
let mutable numFailures = 0;
for i = 0 to 9 do
if BlockingCollection<int>.TryAddToAny(bcs, i) = -1 then
numFailures <- numFailures + 1
printfn $"TryAddToAny: {numFailures} failures (should be 0)"
// Should be able to retrieve 10 items
let mutable numItems = 0
let mutable item = 0
while BlockingCollection<int>.TryTakeFromAny(bcs, &item) <> -1 do
numItems <- numItems + 1
printfn $"TryTakeFromAny: retrieved {numItems} items (should be 10)"
'Imports System.Threading.Tasks
'Imports System.Collections.Concurrent
' Demonstrates:
' Bounded BlockingCollection<T>
' BlockingCollection<T>.TryAddToAny()
' BlockingCollection<T>.TryTakeFromAny()
Class ToAnyDemo
Shared Sub BC_ToAny()
Dim bcs As BlockingCollection(Of Integer)() = New BlockingCollection(Of Integer)(1) {}
bcs(0) = New BlockingCollection(Of Integer)(5)
' collection bounded to 5 items
bcs(1) = New BlockingCollection(Of Integer)(5)
' collection bounded to 5 items
' Should be able to add 10 items w/o blocking
Dim numFailures As Integer = 0
For i As Integer = 0 To 9
If BlockingCollection(Of Integer).TryAddToAny(bcs, i) = -1 Then
numFailures += 1
End If
Next
Console.WriteLine("TryAddToAny: {0} failures (should be 0)", numFailures)
' Should be able to retrieve 10 items
Dim numItems As Integer = 0
Dim item As Integer
While BlockingCollection(Of Integer).TryTakeFromAny(bcs, item) <> -1
numItems += 1
End While
Console.WriteLine("TryTakeFromAny: retrieved {0} items (should be 10)", numItems)
End Sub
End Class
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element entfernt werden kann.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen.
public:
static int TryTakeFromAny(cli::array <System::Collections::Concurrent::BlockingCollection<T> ^> ^ collections, [Runtime::InteropServices::Out] T % item, int millisecondsTimeout);
public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection<T>[] collections, out T item, int millisecondsTimeout);
static member TryTakeFromAny : System.Collections.Concurrent.BlockingCollection<'T>[] * 'T * int -> int
Public Shared Function TryTakeFromAny (collections As BlockingCollection(Of T)(), ByRef item As T, millisecondsTimeout As Integer) As Integer
Parameter
- collections
- BlockingCollection<T>[]
Das Array von Sammlungen, aus dem ein Element entfernt werden soll.
- item
- T
Das Element, das aus einer der Auflistungen entfernt wurde.
- millisecondsTimeout
- Int32
Die Anzahl der Millisekunden, die warten, bis das Element entfernt wird, oder Infinite (-1) auf unbestimmte Zeit warten.
Gibt zurück
Der Index der Auflistung im collections Array, aus dem das Element entfernt wurde, oder -1, wenn ein Element nicht entfernt werden konnte.
Ausnahmen
Mindestens eine der BlockingCollection<T> Instanzen wurde verworfen.
Das collections Argument ist NULL.
millisecondsTimeout ist eine andere negative Zahl als -1, die ein unendliches Timeout darstellt.
-oder-
Die Anzahl ist collections größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections Argument ist ein Array mit 0 Länge oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb der BlockingCollection<T> Instanz geändert.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element entfernt werden kann.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen.
public:
static int TryTakeFromAny(cli::array <System::Collections::Concurrent::BlockingCollection<T> ^> ^ collections, [Runtime::InteropServices::Out] T % item, int millisecondsTimeout, System::Threading::CancellationToken cancellationToken);
public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection<T>[] collections, out T item, int millisecondsTimeout, System.Threading.CancellationToken cancellationToken);
static member TryTakeFromAny : System.Collections.Concurrent.BlockingCollection<'T>[] * 'T * int * System.Threading.CancellationToken -> int
Public Shared Function TryTakeFromAny (collections As BlockingCollection(Of T)(), ByRef item As T, millisecondsTimeout As Integer, cancellationToken As CancellationToken) As Integer
Parameter
- collections
- BlockingCollection<T>[]
Das Array von Sammlungen, aus dem ein Element entfernt werden soll.
- item
- T
Das Element, das aus einer der Auflistungen entfernt wurde.
- millisecondsTimeout
- Int32
Die Anzahl der Millisekunden, die warten, bis das Element entfernt wird, oder Infinite (-1) auf unbestimmte Zeit warten.
- cancellationToken
- CancellationToken
Ein abbruchtoken, das beobachtet werden soll.
Gibt zurück
Der Index der Auflistung im collections Array, aus dem das Element entfernt wurde, oder -1, wenn ein Element nicht entfernt werden konnte.
Ausnahmen
Der CancellationToken Vorgang wird abgebrochen.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb der BlockingCollection<T> Instanz geändert.
Das collections Argument ist NULL.
millisecondsTimeout ist eine andere negative Zahl als -1, die ein unendliches Timeout darstellt.
-oder-
Die Anzahl ist collections größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections Argument ist ein Array mit 0 Länge oder enthält ein NULL-Element.
Mindestens eine der BlockingCollection<T> Instanzen wurde verworfen.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element entfernt werden kann.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
Versucht, ein Element aus einer der angegebenen BlockingCollection<T> Instanzen zu entfernen.
public:
static int TryTakeFromAny(cli::array <System::Collections::Concurrent::BlockingCollection<T> ^> ^ collections, [Runtime::InteropServices::Out] T % item, TimeSpan timeout);
public static int TryTakeFromAny(System.Collections.Concurrent.BlockingCollection<T>[] collections, out T item, TimeSpan timeout);
static member TryTakeFromAny : System.Collections.Concurrent.BlockingCollection<'T>[] * 'T * TimeSpan -> int
Public Shared Function TryTakeFromAny (collections As BlockingCollection(Of T)(), ByRef item As T, timeout As TimeSpan) As Integer
Parameter
- collections
- BlockingCollection<T>[]
Das Array von Sammlungen.
- item
- T
Das Element, das aus einer der Auflistungen entfernt wurde.
- timeout
- TimeSpan
Ein TimeSpan Wert, der die Anzahl der zu wartenden Millisekunden darstellt, oder eine TimeSpan , die -1 Millisekunden darstellt, die unbegrenzt gewartet werden sollen.
Gibt zurück
Der Index der Auflistung im collections Array, aus dem das Element entfernt wurde, oder -1, wenn ein Element nicht entfernt werden konnte.
Ausnahmen
Mindestens eine der BlockingCollection<T> Instanzen wurde verworfen.
Das collections Argument ist NULL.
timeout ist eine andere negative Zahl als -1 Millisekunden, die ein unendliches Timeout darstellt.
-oder-
timeout ist größer als Int32.MaxValue.
-oder-
Die Anzahl ist collections größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections Argument ist ein Array mit 0 Länge oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb der BlockingCollection<T> Instanz geändert.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element entfernt werden kann.