static void MemoryPipeTest() { using (var pfac = new PipeFactory()) { // pipeline endpoint // if you want only to output Stream, call AsPipelineWriter(this Stream) extension method or CopyToAsync(Stream) var epwriter = pfac.CreateWriter(null, async(r, w) => { while (true) { try { var result = await r.ReadAsync(); if (result.IsCancelled || (result.IsCompleted && result.Buffer.IsEmpty)) { break; } foreach (var rbuf in result.Buffer) { for (int i = 0; i < rbuf.Length; i++) { Console.Write($"{rbuf.Span[i].ToString("x2")}"); if ((i & 0xf) == 0xf) { Console.WriteLine(); } else { Console.Write(":"); } } } r.Advance(result.Buffer.End); } catch (Exception e) { Console.WriteLine($"{e}"); } } }); var writer = pfac.Filter0xf0(epwriter); var reader = pfac.CreateFromEnumerable(Enumerable.Range(0, 10000)); reader.CopyToAsync(writer).Wait(); } }