System.Net.BufferedReadStream.ReadAsync C# (CSharp) Метод

ReadAsync() публичный Метод

public ReadAsync ( byte buffer, int offset, int count, CancellationToken cancellationToken ) : Task
buffer byte
offset int
count int
cancellationToken System.Threading.CancellationToken
Результат Task
        public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
        {
            int read = 0;
            if (_storedOffset >= _storedLength)
            {
                return base.ReadAsync(buffer, offset, count, cancellationToken);
            }

            read = Math.Min(count, _storedLength - _storedOffset);
            Buffer.BlockCopy(_storedBuffer, _storedOffset, buffer, offset, read);
            _storedOffset += read;
            if (read == count || !_readMore)
            {
                return Task.FromResult<int>(read);
            }

            offset += read;
            count -= read;

            return ReadMoreAsync(read, buffer, offset, count, cancellationToken);
        }