DEV Community

Juarez Júnior
Juarez Júnior

Posted on • Updated on

Dica C#: Async Streams

Vamos falar sobre Async Streams, introduzidos no C# 8, que permitem trabalhar com fluxos de dados assíncronos de forma eficiente e natural. Veja o exemplo no código abaixo.

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        await foreach (var numero in GerarNumerosAsync())
        {
            Console.WriteLine(numero);
        }
    }

    public static async IAsyncEnumerable<int> GerarNumerosAsync()
    {
        for (int i = 1; i <= 5; i++)
        {
            await Task.Delay(1000); // Simula uma operação assíncrona
            yield return i;
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação:
Com Async Streams, você pode consumir dados de forma assíncrona, item por item, utilizando a palavra-chave await em um foreach. Isso é especialmente útil ao lidar com grandes quantidades de dados ou quando os dados são recebidos gradualmente, como em operações de leitura de arquivos, requisições HTTP ou processamento de dados em tempo real. No exemplo acima, mostramos como usar IAsyncEnumerable para ler e processar dados de maneira assíncrona.

Código fonte: GitHub

Espero que essa dica ajude você a usar Async Streams para tornar suas operações de leitura de dados mais eficientes e responsivas! Até a próxima.

Top comments (0)