BlockingCollection<T>.TryTakeFromAny Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır.
Aşırı Yüklemeler
TryTakeFromAny(BlockingCollection<T>[], T) |
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır. |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır. |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır. |
TryTakeFromAny(BlockingCollection<T>[], T)
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır.
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
Parametreler
- collections
- BlockingCollection<T>[]
Koleksiyon dizisi.
- item
- T
Koleksiyonlardan birinden kaldırılan öğe.
Döndürülenler
Öğenin kaldırıldığı dizideki koleksiyonun collections
dizini veya bir öğe kaldırılamadıysa -1.
Özel durumlar
Örneklerden BlockingCollection<T> en az biri atılmış.
Bağımsız collections
değişken null.
sayısı collections
, STA için maksimum boyut olan 62'den ve MTA için 63'ten büyüktür.
collections
Bağımsız değişken 0 uzunlukta bir dizidir veya null bir öğe içerir.
Temel alınan koleksiyonlardan en az biri örneğinin BlockingCollection<T> dışında değiştirildi.
Örnekler
Aşağıdaki örnekte yönteminin nasıl kullanılacağı gösterilmektedir BlockingCollection<T>.TryTakeFromAny :
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
Açıklamalar
TryTakeFromAny çağrısı, bir öğe kaldırılmaya hazır olana kadar engelleyebilir.
Ayrıca bkz.
Şunlara uygulanır
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır.
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
Parametreler
- collections
- BlockingCollection<T>[]
Öğe kaldırılacak koleksiyon dizisi.
- item
- T
Koleksiyonlardan birinden kaldırılan öğe.
- millisecondsTimeout
- Int32
Öğenin kaldırılmasını beklenecek milisaniye sayısı veya Infinite (-1) süresiz olarak bekler.
Döndürülenler
Öğenin kaldırıldığı dizideki koleksiyonun collections
dizini veya bir öğe kaldırılamadıysa -1.
Özel durumlar
Örneklerden BlockingCollection<T> en az biri atılmış.
Bağımsız collections
değişken null.
millisecondsTimeout
, -1 dışında, sonsuz bir zaman aşımını temsil eden negatif bir sayıdır.
-veya-
sayısı collections
, STA için maksimum boyut olan 62'den ve MTA için 63'ten büyüktür.
collections
Bağımsız değişken 0 uzunlukta bir dizidir veya null bir öğe içerir.
Temel alınan koleksiyonlardan en az biri örneğinin BlockingCollection<T> dışında değiştirildi.
Açıklamalar
TryTakeFromAny çağrısı, bir öğe kaldırılmaya hazır olana kadar engelleyebilir.
Ayrıca bkz.
Şunlara uygulanır
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır.
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
Parametreler
- collections
- BlockingCollection<T>[]
Öğe kaldırılacak koleksiyon dizisi.
- item
- T
Koleksiyonlardan birinden kaldırılan öğe.
- millisecondsTimeout
- Int32
Öğenin kaldırılmasını beklenecek milisaniye sayısı veya Infinite (-1) süresiz olarak bekler.
- cancellationToken
- CancellationToken
Gözlemlemek için bir iptal belirteci.
Döndürülenler
Öğenin kaldırıldığı dizideki koleksiyonun collections
dizini veya bir öğe kaldırılamadıysa -1.
Özel durumlar
CancellationToken iptal edildi.
Temel alınan koleksiyonlardan en az biri örneğinin BlockingCollection<T> dışında değiştirildi.
Bağımsız collections
değişken null.
millisecondsTimeout
, -1 dışında, sonsuz bir zaman aşımını temsil eden negatif bir sayıdır.
-veya-
sayısı collections
, STA için maksimum boyut olan 62'den ve MTA için 63'ten büyüktür.
collections
Bağımsız değişken 0 uzunlukta bir dizidir veya null bir öğe içerir.
Örneklerden BlockingCollection<T> en az biri atılmış.
Açıklamalar
TryTakeFromAny çağrısı, bir öğe kaldırılmaya hazır olana kadar engelleyebilir.
Ayrıca bkz.
Şunlara uygulanır
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
- Kaynak:
- BlockingCollection.cs
Belirtilen BlockingCollection<T> örneklerden herhangi birinden öğe kaldırmaya çalışır.
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
Parametreler
- collections
- BlockingCollection<T>[]
Koleksiyon dizisi.
- item
- T
Koleksiyonlardan birinden kaldırılan öğe.
- timeout
- TimeSpan
TimeSpan Bekleyebilecek milisaniye sayısını temsil eden veya süresiz olarak bekleyebilecek -1 milisaniyeyi temsil eden birTimeSpan.
Döndürülenler
Öğenin kaldırıldığı dizideki koleksiyonun collections
dizini veya bir öğe kaldırılamadıysa -1.
Özel durumlar
Örneklerden BlockingCollection<T> en az biri atılmış.
Bağımsız collections
değişken null.
timeout
-1 milisaniye dışında bir negatif sayıdır ve bu da sonsuz zaman aşımını temsil eder
-veya-
timeout
Int32.MaxValue değerinden büyüktür.
-veya-
sayısı collections
, STA için maksimum boyut olan 62'den ve MTA için 63'ten büyüktür.
collections
Bağımsız değişken 0 uzunlukta bir dizidir veya null bir öğe içerir.
Temel alınan koleksiyonlardan en az biri örneğinin BlockingCollection<T> dışında değiştirildi.
Açıklamalar
TryTakeFromAny çağrısı, bir öğe kaldırılmaya hazır olana kadar engelleyebilir.