public void StartWriting(Func <Stream, Task> copyTo) { var task = Task.Run(async delegate { await copyTo(_stream); _stream.CompleteWriting(); }); _tasksToAwait.Add(task); }
private Task CopyFrom(SimplexStream stream) { var task = Task.Run(async delegate { Console.WriteLine("Starting Read!"); var source = new FileStream("C:\\temp\\LibreOffice_4.2.0_Win_x86.msi", FileMode.Open); await source.CopyToAsync(stream); stream.CompleteWriting(); }); 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); }