Example #1
0
        public override async Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken)
        {
            await _stream.CopyToAsync(destination, bufferSize, cancellationToken);

            if (destination is StreamWrapper)
            {
                ((StreamWrapper)destination).CompleteWriting();
            }
        }
        private Task CopyTo(SimplexStream stream)
        {
            var task = Task.Run(async delegate {
                Console.WriteLine("Starting Write!");
                var destination = new FileStream("D:\\temp\\target.msi", FileMode.Create, FileAccess.Write);
                await stream.CopyToAsync(destination);
            });

            return(task);
        }
        public async Task Copy()
        {
            var sourceStream = new SimplexStream();
            var tc           = CopyFrom(sourceStream);

            var targetStream = new SimplexStream();
            var td           = CopyTo(targetStream);

            Console.WriteLine("Copy in between");

            await sourceStream.CopyToAsync(targetStream);

            targetStream.CompleteWriting();

            await Task.WhenAll(tc, td);
        }