Advanced Asynchronous Programming

Advanced Updated November 16, 2024

⏱️ 4. Advanced Asynchronous Programming

🔹 Parallelism with Parallel.ForEach

Parallel.ForEach(numbers, n =>
{
    Console.WriteLine($"Processing {n}");
});

🔹 Task.WhenAll / Task.WhenAny

var tasks = new[]
{
    Task.Delay(1000),
    Task.Delay(500),
    Task.Delay(2000)
};
await Task.WhenAll(tasks); // Waits for all

🔹 Async Streams with IAsyncEnumerable<T>

async IAsyncEnumerable<int> GetNumbersAsync()
{
    for (int i = 0; i < 5; i++)
    {
        await Task.Delay(100);
        yield return i;
    }
}