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

◆ ReadAsync() [3/3]

override ValueTask< int > System.IO.Strategies.Net5CompatFileStreamStrategy.ReadAsync ( Memory< byte > buffer,
CancellationToken cancellationToken = default(CancellationToken) )
inlinevirtual

Reimplemented from System.IO.Stream.

Definition at line 341 of file Net5CompatFileStreamStrategy.cs.

342 {
343 if (!_useAsyncIO)
344 {
345 if (!MemoryMarshal.TryGetArray((ReadOnlyMemory<byte>)buffer, out ArraySegment<byte> segment))
346 {
347 return base.ReadAsync(buffer, cancellationToken);
348 }
349 return new ValueTask<int>(BeginReadInternal(segment.Array, segment.Offset, segment.Count, null, null, serializeAsynchronously: true, apm: false));
350 }
351 int synchronousResult;
352 Task<int> task = ReadAsyncInternal(buffer, cancellationToken, out synchronousResult);
353 if (task == null)
354 {
355 return new ValueTask<int>(synchronousResult);
356 }
357 return new ValueTask<int>(task);
358 }
Task< int > ReadAsyncInternal(Memory< byte > destination, CancellationToken cancellationToken, out int synchronousResult)
Task< int > BeginReadInternal(byte[] buffer, int offset, int count, AsyncCallback callback, object state, bool serializeAsynchronously, bool apm)
Definition Stream.cs:693

References System.IO.Strategies.Net5CompatFileStreamStrategy._useAsyncIO, System.IO.Stream.BeginReadInternal(), System.buffer, System.cancellationToken, System.IO.Strategies.Net5CompatFileStreamStrategy.ReadAsyncInternal(), and System.task.