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

◆ ReadAsync() [2/3]

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

Reimplemented from System.IO.Stream.

Reimplemented in System.IO.UnmanagedMemoryStreamWrapper.

Definition at line 364 of file MemoryStream.cs.

365 {
366 Stream.ValidateBufferArguments(buffer, offset, count);
367 if (cancellationToken.IsCancellationRequested)
368 {
370 }
371 try
372 {
373 int num = Read(buffer, offset, count);
374 Task<int> lastReadTask = _lastReadTask;
375 return (lastReadTask != null && lastReadTask.Result == num) ? lastReadTask : (_lastReadTask = Task.FromResult(num));
376 }
377 catch (OperationCanceledException exception)
378 {
379 return Task.FromCanceled<int>(exception);
380 }
381 catch (Exception exception2)
382 {
383 return Task.FromException<int>(exception2);
384 }
385 }
Task< int > _lastReadTask
static Task FromException(Exception exception)
Definition Task.cs:3341
static Task FromCanceled(CancellationToken cancellationToken)
Definition Task.cs:3363

References System.IO.MemoryStream._lastReadTask, System.buffer, System.cancellationToken, System.count, System.exception, System.Threading.Tasks.Task< TResult >.FromCanceled(), System.Threading.Tasks.Task< TResult >.FromException(), System.offset, System.IO.Read, System.Threading.Tasks.Task< TResult >.Result, and System.IO.Stream.ValidateBufferArguments().