BlockingCollection<T>.TryTakeFromAny Methode

Definition

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.

Weitere Informationen

Gilt für: