// This isn't async because it's unnecessary, but writing it as a task allows // us to run it in parallel. public static async Task Producer <T>(IWrite <string> writer) { for (int i = 0; i < 10; i++) { writer.Push(i.ToString()); await Task.Delay(100); } writer.Complete(); }