Esempio n. 1
0
        public static AsyncStream ConvertToAsync(this Stream stream)
        {
            AsyncStream asyncStream = stream as AsyncStream;

            if (asyncStream != null)
            {
                return(asyncStream);
            }

            return(new AsyncStreamWrapper(stream));
        }
Esempio n. 2
0
        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);
            }
        }