BlockingCollection<T>.TryTakeFromAny Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- Thread-Safe Verzamelingen
- Overzicht van BlockingCollection
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
- Thread-Safe Verzamelingen
- Overzicht van BlockingCollection
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
- Thread-Safe Verzamelingen
- Overzicht van BlockingCollection
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
- Thread-Safe Verzamelingen
- Overzicht van BlockingCollection