BlockingCollection<T>.GetConsumingEnumerable Metodo

Definizione

Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta.

Overload

GetConsumingEnumerable(CancellationToken)

Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta.

GetConsumingEnumerable()

Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta.

GetConsumingEnumerable(CancellationToken)

Origine:
BlockingCollection.cs
Origine:
BlockingCollection.cs
Origine:
BlockingCollection.cs

Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta.

public System.Collections.Generic.IEnumerable<T> GetConsumingEnumerable (System.Threading.CancellationToken cancellationToken);

Parametri

cancellationToken
CancellationToken

Token di annullamento da osservare.

Restituisce

Oggetto IEnumerable<T> che rimuove e restituisce elementi dalla raccolta.

Eccezioni

L'oggetto CancellationToken viene annullato.

L'oggetto BlockingCollection<T> è stato eliminato o è stato eliminato l'oggetto CancellationTokenSource che aveva creato cancellationToken.

Commenti

Questo metodo consente al codice client di rimuovere gli elementi dalla raccolta usando un ciclo foreach (For Each in Visual Basic) o Parallel.ForEach una query PLINQ. L'enumeratore continuerà a fornire elementi (se presenti) fino IsCompleted a quando non restituisce true e se IsCompleted è false i blocchi del ciclo fino a quando un elemento non diventa disponibile o finché non CancellationToken viene annullato.

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GetConsumingEnumerable()

Origine:
BlockingCollection.cs
Origine:
BlockingCollection.cs
Origine:
BlockingCollection.cs

Fornisce un oggetto IEnumerable<T> usato per gli elementi nella raccolta.

public System.Collections.Generic.IEnumerable<T> GetConsumingEnumerable ();

Restituisce

Oggetto IEnumerable<T> che rimuove e restituisce elementi dalla raccolta.

Eccezioni

L'interfaccia BlockingCollection<T> è stata eliminata.

Esempio

Nell'esempio seguente viene illustrato come usare il GetConsumingEnumerable metodo:

class ConsumingEnumerableDemo
{
    // Demonstrates:
    //      BlockingCollection<T>.Add()
    //      BlockingCollection<T>.CompleteAdding()
    //      BlockingCollection<T>.GetConsumingEnumerable()
    public static async Task BC_GetConsumingEnumerable()
    {
        using (BlockingCollection<int> bc = new BlockingCollection<int>())
        {
            // Kick off a producer task
            var producerTask = Task.Run(async () =>
            {
                for (int i = 0; i < 10; i++)
                {
                    bc.Add(i);
                    Console.WriteLine($"Producing: {i}");

                    await Task.Delay(100); // sleep 100 ms between adds
                }

                // Need to do this to keep foreach below from hanging
                bc.CompleteAdding();
            });

            // Now consume the blocking collection with foreach.
            // Use bc.GetConsumingEnumerable() instead of just bc because the
            // former will block waiting for completion and the latter will
            // simply take a snapshot of the current state of the underlying collection.
            foreach (var item in bc.GetConsumingEnumerable())
            {
                Console.WriteLine($"Consuming: {item}");
            }
            await producerTask; // Allow task to complete cleanup
        }
    }
}

Vedi anche

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0