Class StreamPipeReader
A PipeReader that reads from an underlying Stream exactly when told to do so rather than constantly reading from the stream and buffering up the results.
public class StreamPipeReader : PipeReader
  - Inheritance
 - 
      
      
      StreamPipeReader
 
- Inherited Members
 
- Extension Methods
 
Constructors
StreamPipeReader(Stream)
Initializes a new instance of the StreamPipeReader class.
public StreamPipeReader(Stream stream)
  Parameters
streamStreamThe stream to read from.
Remarks
The stream will be disposed of when the reader is completed.
StreamPipeReader(Stream, int, bool)
Initializes a new instance of the StreamPipeReader class.
public StreamPipeReader(Stream stream, int bufferSize, bool leaveOpen)
  Parameters
streamStreamThe stream to read from.
bufferSizeintA hint at the size of messages that are commonly transferred. Use 0 for a commonly reasonable default.
leaveOpenbooltrue to leave the underlying
streamopen after calling Complete(Exception); false to close the stream.
Methods
AdvanceTo(SequencePosition)
Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed.
public override void AdvanceTo(SequencePosition consumed)
  Parameters
consumedSequencePositionMarks the extent of the data that has been successfully processed.
AdvanceTo(SequencePosition, SequencePosition)
Moves forward the pipeline's read cursor to after the consumed data, marking the data as processed, read and examined.
public override void AdvanceTo(SequencePosition consumed, SequencePosition examined)
  Parameters
consumedSequencePositionMarks the extent of the data that has been successfully processed.
examinedSequencePositionMarks the extent of the data that has been read and examined.
CancelPendingRead()
Cancels the pending ReadAsync(CancellationToken) operation without causing it to throw and without completing the PipeReader. If there is no pending operation, this cancels the next operation.
public override void CancelPendingRead()
  Complete(Exception?)
Signals to the producer that the consumer is done reading.
public override void Complete(Exception? exception = null)
  Parameters
exceptionExceptionOptional Exception indicating a failure that's causing the pipeline to complete.
OnWriterCompleted(Action<Exception?, object?>, object?)
Registers a callback that executes when the PipeWriter side of the pipe is completed.
[Obsolete]
public override void OnWriterCompleted(Action<Exception?, object?> callback, object? state)
  Parameters
callbackAction<Exception, object>The callback to register.
stateobjectThe state object to pass to
callbackwhen it's invoked.
Read()
Reads a sequence of bytes from the from the buffer or underlying Stream using synchronous APIs.
public ReadResult Read()
  Returns
- ReadResult
 The read buffer.
ReadAsync(CancellationToken)
Asynchronously reads a sequence of bytes from the current PipeReader.
public override ValueTask<ReadResult> ReadAsync(CancellationToken cancellationToken = default)
  Parameters
cancellationTokenCancellationTokenThe token to monitor for cancellation requests. The default value is default.
Returns
- ValueTask<ReadResult>
 A ValueTask<TResult> representing the asynchronous read operation.
TryRead(out ReadResult)
Attempts to synchronously read data the PipeReader.
public override bool TryRead(out ReadResult result)
  Parameters
resultReadResultWhen this method returns true, this value is set to a ReadResult instance that represents the result of the read call; otherwise, this value is set to default.