public static async Task <List <T> > ReadAllAsync <T>(this ReadableChannel <T> channel) { var list = new List <T>(); while (await channel.WaitToReadAsync()) { while (channel.TryRead(out var item)) { list.Add(item); } } // Manifest any error from channel.Completion (which should be completed now) await channel.Completion; return(list); }
public override Task <bool> WaitAsync(CancellationToken cancellationToken) { return(_channel.WaitToReadAsync(cancellationToken)); }