Open
Description
Today the StreamPipeReader.TryRead (which overrides PipeReader.TryRead) either never returns any data (when ReadAsync is never called), or is likely to provide corrupted data (when ReadAsync is sometimes called).
The only way it's even a little bit useful today is if you've read data calling ReadAsync, partially advance, and already know data is available without any call to InnerStream.ReadAsync in the background. This is extremely limited though, and requires the consumer to know a lot about the implementation and limitations of the PipeWriter they are using.