BlockingCollection<T>.TryTakeFromAny Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.
Överlagringar
| Name | Description |
|---|---|
| TryTakeFromAny(BlockingCollection<T>[], T) |
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna. |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna. |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna. |
| TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna. |
TryTakeFromAny(BlockingCollection<T>[], T)
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.
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
Parametrar
- collections
- BlockingCollection<T>[]
Matrisen med samlingar.
- item
- T
Objektet som togs bort från en av samlingarna.
Returer
Indexet för samlingen i matrisen collections som objektet togs bort från eller -1 om ett objekt inte kunde tas bort.
Undantag
Minst en av BlockingCollection<T> instanserna har tagits bort.
Argumentet collections är null.
Antalet collections är större än den maximala storleken på 62 för STA och 63 för MTA.
Argumentet collections är en matris med 0 längder eller innehåller ett null-element.
Minst en av de underliggande samlingarna ändrades utanför instansen BlockingCollection<T> .
Exempel
I följande exempel visas hur du använder BlockingCollection<T>.TryTakeFromAny metoden:
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
Kommentarer
Ett anrop till TryTakeFromAny kan blockeras tills ett objekt är tillgängligt för att tas bort.
Se även
- Tråd-säkra samlingar
- översikt över BlockingCollection
Gäller för
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.
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
Parametrar
- collections
- BlockingCollection<T>[]
Matrisen med samlingar som ett objekt ska tas bort från.
- item
- T
Objektet som togs bort från en av samlingarna.
- millisecondsTimeout
- Int32
Antalet millisekunder som ska vänta tills objektet har tagits bort eller Infinite (-1) att vänta på obestämd tid.
Returer
Indexet för samlingen i matrisen collections som objektet togs bort från eller -1 om ett objekt inte kunde tas bort.
Undantag
Minst en av BlockingCollection<T> instanserna har tagits bort.
Argumentet collections är null.
millisecondsTimeout är ett annat negativt tal än -1, vilket representerar en oändlig timeout.
-eller-
Antalet collections är större än den maximala storleken på 62 för STA och 63 för MTA.
Argumentet collections är en matris med 0 längder eller innehåller ett null-element.
Minst en av de underliggande samlingarna ändrades utanför instansen BlockingCollection<T> .
Kommentarer
Ett anrop till TryTakeFromAny kan blockeras tills ett objekt är tillgängligt för att tas bort.
Se även
- Tråd-säkra samlingar
- översikt över BlockingCollection
Gäller för
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.
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
Parametrar
- collections
- BlockingCollection<T>[]
Matrisen med samlingar som ett objekt ska tas bort från.
- item
- T
Objektet som togs bort från en av samlingarna.
- millisecondsTimeout
- Int32
Antalet millisekunder som ska vänta tills objektet har tagits bort eller Infinite (-1) att vänta på obestämd tid.
- cancellationToken
- CancellationToken
En annulleringstoken att observera.
Returer
Indexet för samlingen i matrisen collections som objektet togs bort från eller -1 om ett objekt inte kunde tas bort.
Undantag
Avbryts CancellationToken .
Minst en av de underliggande samlingarna ändrades utanför instansen BlockingCollection<T> .
Argumentet collections är null.
millisecondsTimeout är ett annat negativt tal än -1, vilket representerar en oändlig timeout.
-eller-
Antalet collections är större än den maximala storleken på 62 för STA och 63 för MTA.
Argumentet collections är en matris med 0 längder eller innehåller ett null-element.
Minst en av BlockingCollection<T> instanserna har tagits bort.
Kommentarer
Ett anrop till TryTakeFromAny kan blockeras tills ett objekt är tillgängligt för att tas bort.
Se även
- Tråd-säkra samlingar
- översikt över BlockingCollection
Gäller för
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
Försöker ta bort ett objekt från någon av de angivna BlockingCollection<T> instanserna.
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
Parametrar
- collections
- BlockingCollection<T>[]
Matrisen med samlingar.
- item
- T
Objektet som togs bort från en av samlingarna.
- timeout
- TimeSpan
En TimeSpan som representerar antalet millisekunder som ska vänta, eller ett TimeSpan som representerar -1 millisekunder för att vänta på obestämd tid.
Returer
Indexet för samlingen i matrisen collections som objektet togs bort från eller -1 om ett objekt inte kunde tas bort.
Undantag
Minst en av BlockingCollection<T> instanserna har tagits bort.
Argumentet collections är null.
timeout är ett annat negativt tal än -1 millisekunder, vilket representerar en oändlig timeout
-eller-
timeout är större än Int32.MaxValue.
-eller-
Antalet collections är större än den maximala storleken på 62 för STA och 63 för MTA.
Argumentet collections är en matris med 0 längder eller innehåller ett null-element.
Minst en av de underliggande samlingarna ändrades utanför instansen BlockingCollection<T> .
Kommentarer
Ett anrop till TryTakeFromAny kan blockeras tills ett objekt är tillgängligt för att tas bort.
Se även
- Tråd-säkra samlingar
- översikt över BlockingCollection