public static AsyncStream ConvertToAsync(this Stream stream) { AsyncStream asyncStream = stream as AsyncStream; if (asyncStream != null) { return(asyncStream); } return(new AsyncStreamWrapper(stream)); }
private static async Task CopyToHalfAsync(Stream source, AsyncStream destination, int bufferSize, CancellationToken cancellationToken) { byte[] buffer = new byte[bufferSize]; while (true) { int bytesRead = await ReadAsyncInternal(source, buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false); if (bytesRead == 0) { break; } await destination.WriteAsync(buffer, 0, bytesRead, cancellationToken).ConfigureAwait(false); } }