BlockingCollection<T>.TryTakeFromAny Methode

Definitie

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

Overloads

Name Description
TryTakeFromAny(BlockingCollection<T>[], T)

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

TryTakeFromAny(BlockingCollection<T>[], T)

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Parameters

collections
BlockingCollection<T>[]

De matrix van verzamelingen.

item
T

Het item dat is verwijderd uit een van de verzamelingen.

Retouren

De index van de verzameling in de collections matrix waaruit het item is verwijderd of -1 als een item niet kan worden verwijderd.

Uitzonderingen

Ten minste één van de BlockingCollection<T> exemplaren is verwijderd.

Het collections argument is null.

Het aantal collections is groter dan de maximale grootte van 62 voor STA en 63 voor MTA.

Het collections argument is een matrix van 0 lengte of bevat een null-element.

Ten minste één van de onderliggende verzamelingen is buiten het BlockingCollection<T> exemplaar gewijzigd.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de BlockingCollection<T>.TryTakeFromAny methode gebruikt:

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

Opmerkingen

Een aanroep van TryTakeFromAny kan worden geblokkeerd totdat een item beschikbaar is om te worden verwijderd.

Zie ook

Van toepassing op

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Parameters

collections
BlockingCollection<T>[]

De matrix van verzamelingen waaruit een item moet worden verwijderd.

item
T

Het item dat is verwijderd uit een van de verzamelingen.

millisecondsTimeout
Int32

Het aantal milliseconden dat moet worden gewacht totdat het item is verwijderd, of Infinite (-1) om voor onbepaalde tijd te wachten.

Retouren

De index van de verzameling in de collections matrix waaruit het item is verwijderd of -1 als een item niet kan worden verwijderd.

Uitzonderingen

Ten minste één van de BlockingCollection<T> exemplaren is verwijderd.

Het collections argument is null.

millisecondsTimeout is een ander negatief getal dan -1, dat een oneindige time-out vertegenwoordigt.

– of –

Het aantal collections is groter dan de maximale grootte van 62 voor STA en 63 voor MTA.

Het collections argument is een matrix van 0 lengte of bevat een null-element.

Ten minste één van de onderliggende verzamelingen is buiten het BlockingCollection<T> exemplaar gewijzigd.

Opmerkingen

Een aanroep van TryTakeFromAny kan worden geblokkeerd totdat een item beschikbaar is om te worden verwijderd.

Zie ook

Van toepassing op

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Parameters

collections
BlockingCollection<T>[]

De matrix van verzamelingen waaruit een item moet worden verwijderd.

item
T

Het item dat is verwijderd uit een van de verzamelingen.

millisecondsTimeout
Int32

Het aantal milliseconden dat moet worden gewacht totdat het item is verwijderd, of Infinite (-1) om voor onbepaalde tijd te wachten.

cancellationToken
CancellationToken

Een annuleringstoken om te observeren.

Retouren

De index van de verzameling in de collections matrix waaruit het item is verwijderd of -1 als een item niet kan worden verwijderd.

Uitzonderingen

De CancellationToken bewerking is geannuleerd.

Ten minste één van de onderliggende verzamelingen is buiten het BlockingCollection<T> exemplaar gewijzigd.

Het collections argument is null.

millisecondsTimeout is een ander negatief getal dan -1, dat een oneindige time-out vertegenwoordigt.

– of –

Het aantal collections is groter dan de maximale grootte van 62 voor STA en 63 voor MTA.

Het collections argument is een matrix van 0 lengte of bevat een null-element.

Ten minste één van de BlockingCollection<T> exemplaren is verwijderd.

Opmerkingen

Een aanroep van TryTakeFromAny kan worden geblokkeerd totdat een item beschikbaar is om te worden verwijderd.

Zie ook

Van toepassing op

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

Probeert een item te verwijderen uit een van de opgegeven BlockingCollection<T> exemplaren.

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

Parameters

collections
BlockingCollection<T>[]

De matrix van verzamelingen.

item
T

Het item dat is verwijderd uit een van de verzamelingen.

timeout
TimeSpan

Een TimeSpan die het aantal milliseconden aangeeft dat moet worden gewacht, of een TimeSpan waarde die -1 milliseconden vertegenwoordigt om voor onbepaalde tijd te wachten.

Retouren

De index van de verzameling in de collections matrix waaruit het item is verwijderd of -1 als een item niet kan worden verwijderd.

Uitzonderingen

Ten minste één van de BlockingCollection<T> exemplaren is verwijderd.

Het collections argument is null.

timeout is een ander negatief getal dan -1 milliseconden, wat een oneindige time-out vertegenwoordigt

– of –

timeout is groter dan Int32.MaxValue.

– of –

Het aantal collections is groter dan de maximale grootte van 62 voor STA en 63 voor MTA.

Het collections argument is een matrix van 0 lengte of bevat een null-element.

Ten minste één van de onderliggende verzamelingen is buiten het BlockingCollection<T> exemplaar gewijzigd.

Opmerkingen

Een aanroep van TryTakeFromAny kan worden geblokkeerd totdat een item beschikbaar is om te worden verwijderd.

Zie ook

Van toepassing op