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
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)
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
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);
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 Auflistungen.
- 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 freigegeben.
Das collections
-Argument ist null.
Die Anzahl von collections
ist größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections
-Argument ist ein 0-Länge-Array oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb seiner BlockingCollection<T>-Instanz geändert.
Beispiele
Das folgende Beispiel zeigt die Verwendung der BlockingCollection<T>.TryTakeFromAny -Methode:
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 zum Entfernen verfügbar ist.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
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);
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 auf das Entfernen Infinite des Elements warten oder (-1) unbegrenzt 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 freigegeben.
Das collections
-Argument ist null.
millisecondsTimeout
ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.
- oder -
Die Anzahl von collections
ist größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections
-Argument ist ein 0-Länge-Array oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb seiner BlockingCollection<T>-Instanz geändert.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element zum Entfernen verfügbar ist.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
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);
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 auf das Entfernen Infinite des Elements warten oder (-1) unbegrenzt warten.
- cancellationToken
- CancellationToken
Ein Abbruchtoken, das überwacht 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
Das CancellationToken wird abgebrochen.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb seiner BlockingCollection<T>-Instanz geändert.
Das collections
-Argument ist null.
millisecondsTimeout
ist eine negative Zahl, jedoch nicht -1, was einen unbeschränkten Timeout darstellt.
- oder -
Die Anzahl von collections
ist größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections
-Argument ist ein 0-Länge-Array oder enthält ein NULL-Element.
Mindestens eine der BlockingCollection<T>-Instanzen wurde freigegeben.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element zum Entfernen verfügbar ist.
Weitere Informationen
Gilt für:
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
- Quelle:
- BlockingCollection.cs
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);
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 Auflistungen.
- item
- T
Das Element, das aus einer der Auflistungen entfernt wurde.
- timeout
- TimeSpan
Eine TimeSpan-Struktur, die die Anzahl der zu wartenden Millisekunden angibt, oder eine TimeSpan-Struktur, die -1 Millisekunden zum unendlichen Warten angibt.
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 freigegeben.
Das collections
-Argument ist null.
timeout
ist eine andere negative Zahl als -1 Millisekunden, was ein unendliches Timeout darstellt
Oder
timeout
ist größer als Int32.MaxValue.
- oder -
Die Anzahl von collections
ist größer als die maximale Größe von 62 für STA und 63 für MTA.
Das collections
-Argument ist ein 0-Länge-Array oder enthält ein NULL-Element.
Mindestens eine der zugrunde liegenden Auflistungen wurde außerhalb seiner BlockingCollection<T>-Instanz geändert.
Hinweise
Ein Aufruf von TryTakeFromAny kann blockiert werden, bis ein Element zum Entfernen verfügbar ist.