using System.Collections.Generic;
using System.Threading.Tasks;
await foreach (var item in GetStream().Take(1))
Console.WriteLine($"Received: {item}");
Console.WriteLine($"Done");
static async IAsyncEnumerable<int> GetStream()
var locker = new object();
Console.WriteLine($"Finally before lock");
Console.WriteLine($"Finally after lock");