BlockingCollection<T>.TryTakeFromAny Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mencoba menghapus item dari salah satu instans yang ditentukan BlockingCollection<T> .
Overload
TryTakeFromAny(BlockingCollection<T>[], T) |
Mencoba menghapus item dari salah satu instans yang ditentukan BlockingCollection<T> . |
TryTakeFromAny(BlockingCollection<T>[], T, Int32) |
Mencoba menghapus item dari salah satu instans yang ditentukan BlockingCollection<T> . |
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken) |
Mencoba menghapus item dari salah satu instans yang ditentukan BlockingCollection<T> . |
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan) |
Mencoba menghapus item dari salah satu instans yang ditentukan BlockingCollection<T> . |
TryTakeFromAny(BlockingCollection<T>[], T)
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
Mencoba menghapus item dari salah satu instans yang ditentukan 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);
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
Parameter
- collections
- BlockingCollection<T>[]
Array koleksi.
- item
- T
Item yang dihapus dari salah satu koleksi.
Mengembalikan
Indeks koleksi dalam collections
array tempat item dihapus, atau -1 jika item tidak dapat dihapus.
Pengecualian
Setidaknya salah BlockingCollection<T> satu instans telah dibuang.
Argumen collections
null.
Jumlah collections
lebih besar dari ukuran maksimum 62 untuk STA dan 63 untuk MTA.
Argumen collections
adalah array sepanjang 0 atau berisi elemen null.
Setidaknya salah satu koleksi yang mendasar dimodifikasi di luar instansnya BlockingCollection<T> .
Contoh
Contoh berikut menunjukkan cara menggunakan BlockingCollection<T>.TryTakeFromAny metode :
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
Keterangan
Panggilan ke TryTakeFromAny dapat memblokir hingga item tersedia untuk dihapus.
Lihat juga
Berlaku untuk
TryTakeFromAny(BlockingCollection<T>[], T, Int32)
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
Mencoba menghapus item dari salah satu instans yang ditentukan 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);
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
Parameter
- collections
- BlockingCollection<T>[]
Array koleksi untuk menghapus item.
- item
- T
Item yang dihapus dari salah satu koleksi.
- millisecondsTimeout
- Int32
Jumlah milidetik untuk menunggu item dihapus, atau Infinite (-1) menunggu tanpa batas waktu.
Mengembalikan
Indeks koleksi dalam collections
array tempat item dihapus, atau -1 jika item tidak dapat dihapus.
Pengecualian
Setidaknya salah BlockingCollection<T> satu instans telah dibuang.
Argumen collections
null.
millisecondsTimeout
adalah angka negatif selain -1, yang mewakili waktu habis yang tak terbatas.
-atau-
Jumlah collections
lebih besar dari ukuran maksimum 62 untuk STA dan 63 untuk MTA.
Argumen collections
adalah array sepanjang 0 atau berisi elemen null.
Setidaknya salah satu koleksi yang mendasar dimodifikasi di luar instansnya BlockingCollection<T> .
Keterangan
Panggilan ke TryTakeFromAny dapat memblokir hingga item tersedia untuk dihapus.
Lihat juga
Berlaku untuk
TryTakeFromAny(BlockingCollection<T>[], T, Int32, CancellationToken)
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
Mencoba menghapus item dari salah satu instans yang ditentukan 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);
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
Parameter
- collections
- BlockingCollection<T>[]
Array koleksi untuk menghapus item.
- item
- T
Item yang dihapus dari salah satu koleksi.
- millisecondsTimeout
- Int32
Jumlah milidetik untuk menunggu item dihapus, atau Infinite (-1) menunggu tanpa batas waktu.
- cancellationToken
- CancellationToken
Token pembatalan untuk diamati.
Mengembalikan
Indeks koleksi dalam collections
array tempat item dihapus, atau -1 jika item tidak dapat dihapus.
Pengecualian
Dibatalkan CancellationToken .
Setidaknya salah satu koleksi yang mendasar dimodifikasi di luar instansnya BlockingCollection<T> .
Argumen collections
null.
millisecondsTimeout
adalah angka negatif selain -1, yang mewakili waktu habis yang tak terbatas.
-atau-
Jumlah collections
lebih besar dari ukuran maksimum 62 untuk STA dan 63 untuk MTA.
Argumen collections
adalah array sepanjang 0 atau berisi elemen null.
Setidaknya salah BlockingCollection<T> satu instans telah dibuang.
Keterangan
Panggilan ke TryTakeFromAny dapat memblokir hingga item tersedia untuk dihapus.
Lihat juga
Berlaku untuk
TryTakeFromAny(BlockingCollection<T>[], T, TimeSpan)
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
- Sumber:
- BlockingCollection.cs
Mencoba menghapus item dari salah satu instans yang ditentukan 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);
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
Parameter
- collections
- BlockingCollection<T>[]
Array koleksi.
- item
- T
Item yang dihapus dari salah satu koleksi.
- timeout
- TimeSpan
TimeSpan yang mewakili jumlah milidetik untuk menunggu, atau TimeSpan yang mewakili -1 milidetik untuk menunggu tanpa batas waktu.
Mengembalikan
Indeks koleksi dalam collections
array tempat item dihapus, atau -1 jika item tidak dapat dihapus.
Pengecualian
Setidaknya salah BlockingCollection<T> satu instans telah dibuang.
Argumen collections
null.
timeout
adalah angka negatif selain -1 milidetik, yang mewakili batas waktu tak terbatas
-atau-
timeout
lebih besar dari Int32.MaxValue.
-atau-
Jumlah collections
lebih besar dari ukuran maksimum 62 untuk STA dan 63 untuk MTA.
Argumen collections
adalah array sepanjang 0 atau berisi elemen null.
Setidaknya salah satu koleksi yang mendasar dimodifikasi di luar instansnya BlockingCollection<T> .
Keterangan
Panggilan ke TryTakeFromAny dapat memblokir hingga item tersedia untuk dihapus.