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

◆ ReadAsync() [2/3]

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

Reimplemented from System.IO.Stream.

Definition at line 351 of file UnmanagedMemoryStream.cs.

352 {
353 Stream.ValidateBufferArguments(buffer, offset, count);
354 if (cancellationToken.IsCancellationRequested)
355 {
357 }
358 try
359 {
360 int num = Read(buffer, offset, count);
361 Task<int> lastReadTask = _lastReadTask;
362 return (lastReadTask != null && lastReadTask.Result == num) ? lastReadTask : (_lastReadTask = Task.FromResult(num));
363 }
364 catch (Exception exception)
365 {
366 return Task.FromException<int>(exception);
367 }
368 }
static Task FromException(Exception exception)
Definition Task.cs:3341
static Task FromCanceled(CancellationToken cancellationToken)
Definition Task.cs:3363

References System.IO.UnmanagedMemoryStream._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().

Referenced by System.IO.UnmanagedMemoryStreamWrapper.ReadAsync(), and System.IO.UnmanagedMemoryStreamWrapper.ReadAsync().