Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ReadAsync() [2/3]

override Task< int > System.IO.Pipes.PipeStream.ReadAsync ( byte[] buffer,
int offset,
int count,
CancellationToken cancellationToken )
inlinevirtual

Reimplemented from System.IO.Stream.

Definition at line 669 of file PipeStream.cs.

670 {
671 Stream.ValidateBufferArguments(buffer, offset, count);
672 if (!CanRead)
673 {
674 throw Error.GetReadNotSupported();
675 }
676 if (cancellationToken.IsCancellationRequested)
677 {
679 }
681 if (!_isAsync)
682 {
683 return base.ReadAsync(buffer, offset, count, cancellationToken);
684 }
685 if (count == 0)
686 {
687 UpdateMessageCompletion(completion: false);
688 return Task.FromResult(0);
689 }
690 return ReadAsyncCore(new Memory<byte>(buffer, offset, count), cancellationToken).AsTask();
691 }
unsafe ValueTask< int > ReadAsyncCore(Memory< byte > buffer, CancellationToken cancellationToken)
void UpdateMessageCompletion(bool completion)
static Task FromCanceled(CancellationToken cancellationToken)
Definition Task.cs:3363

References System.IO.Pipes.PipeStream._isAsync, System.Threading.Tasks.ValueTask< TResult >.AsTask(), System.buffer, System.cancellationToken, System.IO.Pipes.PipeStream.CanRead, System.IO.Pipes.PipeStream.CheckReadOperations(), System.count, System.Threading.Tasks.Task< TResult >.FromCanceled(), System.IO.Error.GetReadNotSupported(), System.offset, System.IO.Pipes.PipeStream.ReadAsyncCore(), System.IO.Pipes.PipeStream.UpdateMessageCompletion(), and System.IO.Stream.ValidateBufferArguments().

Referenced by System.IO.Pipes.PipeStream.BeginRead(), and System.IO.Pipes.PipeStream.Read().