BlockingCollection<T>.TryTakeFromAny Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień.
Przeciążenia
TryTakeFromAny(BlockingCollection<T>[], T) |
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień. |
TryTakeFromAny(BlockingCollection<T>[], T)
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień.
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
Parametry
- collections
- BlockingCollection<T>[]
Tablica kolekcji.
- item
- T
Element, który został usunięty z jednej z kolekcji.
Zwraca
Indeks kolekcji w collections
tablicy, z której usunięto element, lub -1, jeśli nie można usunąć elementu.
Wyjątki
Co najmniej jedno z BlockingCollection<T> wystąpień zostało usunięte.
Argument collections
ma wartość null.
collections
Liczba wartości jest większa niż maksymalny rozmiar 62 dla sta i 63 dla MTA.
Argument collections
jest tablicą o długości 0 lub zawiera element o wartości null.
Co najmniej jedna z bazowych kolekcji została zmodyfikowana poza jej BlockingCollection<T> wystąpieniem.
Przykłady
W poniższym przykładzie pokazano, jak używać BlockingCollection<T>.TryTakeFromAny metody :
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
Uwagi
Wywołanie metody TryTakeFromAny może blokować, dopóki element nie będzie dostępny do usunięcia.
Zobacz też
Dotyczy
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień.
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
Parametry
- collections
- BlockingCollection<T>[]
Tablica kolekcji do usunięcia elementu.
- item
- T
Element, który został usunięty z jednej z kolekcji.
- millisecondsTimeout
- Int32
Liczba milisekund oczekiwania na usunięcie elementu lub Infinite (-1) oczekiwania na czas nieokreślony.
Zwraca
Indeks kolekcji w collections
tablicy, z której usunięto element, lub -1, jeśli nie można usunąć elementu.
Wyjątki
Co najmniej jedno z BlockingCollection<T> wystąpień zostało usunięte.
Argument collections
ma wartość null.
millisecondsTimeout
jest liczbą ujemną inną niż -1, która reprezentuje nieskończony limit czasu.
-lub-
collections
Liczba wartości jest większa niż maksymalny rozmiar 62 dla sta i 63 dla MTA.
Argument collections
jest tablicą o długości 0 lub zawiera element o wartości null.
Co najmniej jedna z bazowych kolekcji została zmodyfikowana poza jej BlockingCollection<T> wystąpieniem.
Uwagi
Wywołanie metody TryTakeFromAny może blokować, dopóki element nie będzie dostępny do usunięcia.
Zobacz też
Dotyczy
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień.
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
Parametry
- collections
- BlockingCollection<T>[]
Tablica kolekcji do usunięcia elementu.
- item
- T
Element, który został usunięty z jednej z kolekcji.
- millisecondsTimeout
- Int32
Liczba milisekund oczekiwania na usunięcie elementu lub Infinite (-1) oczekiwania na czas nieokreślony.
- cancellationToken
- CancellationToken
Token anulowania do obserwowania.
Zwraca
Indeks kolekcji w collections
tablicy, z której usunięto element, lub -1, jeśli nie można usunąć elementu.
Wyjątki
Element CancellationToken zostanie anulowany.
Co najmniej jedna z bazowych kolekcji została zmodyfikowana poza jej BlockingCollection<T> wystąpieniem.
Argument collections
ma wartość null.
millisecondsTimeout
jest liczbą ujemną inną niż -1, która reprezentuje nieskończony limit czasu.
-lub-
collections
Liczba wartości jest większa niż maksymalny rozmiar 62 dla sta i 63 dla MTA.
Argument collections
jest tablicą o długości 0 lub zawiera element o wartości null.
Co najmniej jedno z BlockingCollection<T> wystąpień zostało usunięte.
Uwagi
Wywołanie metody TryTakeFromAny może blokować, dopóki element nie będzie dostępny do usunięcia.
Zobacz też
Dotyczy
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
- Źródło:
- BlockingCollection.cs
Próbuje usunąć element z dowolnego z określonych BlockingCollection<T> wystąpień.
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
Parametry
- collections
- BlockingCollection<T>[]
Tablica kolekcji.
- item
- T
Element, który został usunięty z jednej z kolekcji.
- timeout
- TimeSpan
Wartość TimeSpan reprezentująca liczbę milisekund oczekiwania lub wartość reprezentująca TimeSpan -1 milisekundy oczekiwania na czas nieokreślony.
Zwraca
Indeks kolekcji w collections
tablicy, z której usunięto element, lub -1, jeśli nie można usunąć elementu.
Wyjątki
Co najmniej jedno z BlockingCollection<T> wystąpień zostało usunięte.
Argument collections
ma wartość null.
timeout
jest liczbą ujemną inną niż -1 milisekundy, która reprezentuje nieskończony limit czasu
-lub-
timeout
parametr jest większy niż Int32.MaxValue.
-lub-
collections
Liczba wartości jest większa niż maksymalny rozmiar 62 dla sta i 63 dla MTA.
Argument collections
jest tablicą o długości 0 lub zawiera element o wartości null.
Co najmniej jedna z bazowych kolekcji została zmodyfikowana poza jej BlockingCollection<T> wystąpieniem.
Uwagi
Wywołanie metody TryTakeFromAny może blokować, dopóki element nie będzie dostępny do usunięcia.