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); }