using System.Threading.Tasks;
using System.Collections.Generic;
public static async Task Main()
await new Program().Test();
await foreach (var number in Numbers().Take(5).ConfigureAwait(false))
Console.WriteLine(string.Join(",", t));
int[] myIntArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
async IAsyncEnumerable<int> Numbers()
foreach (var element in myIntArray)
yield return await Task.Run(async () =>
public static class Extensions
public static async IAsyncEnumerable<T> Take<T>(this IAsyncEnumerable<T> source, int n)
var enumerator = source.GetAsyncEnumerator();
for(int i = 0; i < n; i++)
if(await enumerator.MoveNextAsync())
yield return enumerator.Current;