BlockingCollection<T>.TryTakeFromAny Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> .
Surcharges
| Nom | Description |
|---|---|
| TryTakeFromAny(BlockingCollection<T>[], T) |
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> . |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> . |
| TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> . |
| TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> . |
TryTakeFromAny(BlockingCollection<T>[], T)
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> .
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
Paramètres
- collections
- BlockingCollection<T>[]
Tableau de collections.
- item
- T
Élément supprimé de l’une des collections.
Retours
Index de la collection dans le collections tableau à partir duquel l’élément a été supprimé ou -1 si aucun élément n’a pu être supprimé.
Exceptions
Au moins une des BlockingCollection<T> instances a été supprimée.
L’argument collections est null.
Le nombre est collections supérieur à la taille maximale de 62 pour STA et 63 pour MTA.
L’argument collections est un tableau de longueur 0 ou contient un élément Null.
Au moins une des collections sous-jacentes a été modifiée en dehors de son BlockingCollection<T> instance.
Exemples
L’exemple suivant montre comment utiliser la BlockingCollection<T>.TryTakeFromAny méthode :
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
Remarques
Un appel à TryTakeFromAny peut bloquer jusqu’à ce qu’un élément soit disponible pour être supprimé.
Voir aussi
S’applique à
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> .
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
Paramètres
- collections
- BlockingCollection<T>[]
Tableau de collections à partir duquel supprimer un élément.
- item
- T
Élément supprimé de l’une des collections.
- millisecondsTimeout
- Int32
Nombre de millisecondes à attendre pour que l’élément soit supprimé, ou Infinite (-1) d’attendre indéfiniment.
Retours
Index de la collection dans le collections tableau à partir duquel l’élément a été supprimé ou -1 si aucun élément n’a pu être supprimé.
Exceptions
Au moins une des BlockingCollection<T> instances a été supprimée.
L’argument collections est null.
millisecondsTimeout est un nombre négatif autre que -1, qui représente un délai d’attente infini.
-ou-
Le nombre est collections supérieur à la taille maximale de 62 pour STA et 63 pour MTA.
L’argument collections est un tableau de longueur 0 ou contient un élément Null.
Au moins une des collections sous-jacentes a été modifiée en dehors de son BlockingCollection<T> instance.
Remarques
Un appel à TryTakeFromAny peut bloquer jusqu’à ce qu’un élément soit disponible pour être supprimé.
Voir aussi
S’applique à
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> .
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
Paramètres
- collections
- BlockingCollection<T>[]
Tableau de collections à partir duquel supprimer un élément.
- item
- T
Élément supprimé de l’une des collections.
- millisecondsTimeout
- Int32
Nombre de millisecondes à attendre pour que l’élément soit supprimé, ou Infinite (-1) d’attendre indéfiniment.
- cancellationToken
- CancellationToken
Jeton d’annulation à observer.
Retours
Index de la collection dans le collections tableau à partir duquel l’élément a été supprimé ou -1 si aucun élément n’a pu être supprimé.
Exceptions
L’opération CancellationToken est annulée.
Au moins une des collections sous-jacentes a été modifiée en dehors de son BlockingCollection<T> instance.
L’argument collections est null.
millisecondsTimeout est un nombre négatif autre que -1, qui représente un délai d’attente infini.
-ou-
Le nombre est collections supérieur à la taille maximale de 62 pour STA et 63 pour MTA.
L’argument collections est un tableau de longueur 0 ou contient un élément Null.
Au moins une des BlockingCollection<T> instances a été supprimée.
Remarques
Un appel à TryTakeFromAny peut bloquer jusqu’à ce qu’un élément soit disponible pour être supprimé.
Voir aussi
S’applique à
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
Tente de supprimer un élément de l’une des instances spécifiées BlockingCollection<T> .
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
Paramètres
- collections
- BlockingCollection<T>[]
Tableau de collections.
- item
- T
Élément supprimé de l’une des collections.
- timeout
- TimeSpan
Qui TimeSpan représente le nombre de millisecondes à attendre, ou qui TimeSpan représente -1 millisecondes pour attendre indéfiniment.
Retours
Index de la collection dans le collections tableau à partir duquel l’élément a été supprimé ou -1 si aucun élément n’a pu être supprimé.
Exceptions
Au moins une des BlockingCollection<T> instances a été supprimée.
L’argument collections est null.
timeout est un nombre négatif autre que -1 millisecondes, qui représente un délai d’attente infini
-ou-
timeout est supérieur à Int32.MaxValue.
-ou-
Le nombre est collections supérieur à la taille maximale de 62 pour STA et 63 pour MTA.
L’argument collections est un tableau de longueur 0 ou contient un élément Null.
Au moins une des collections sous-jacentes a été modifiée en dehors de son BlockingCollection<T> instance.
Remarques
Un appel à TryTakeFromAny peut bloquer jusqu’à ce qu’un élément soit disponible pour être supprimé.