private async void DoIt(IBasicWriteChannel <T> writeChannel) { // Wait for first read before we kick off processing await _writeTask.Task; await Run(writeChannel); }
protected override async Task Run(IBasicWriteChannel <string> writeChannel) { await writeChannel.WriteAsync("Hello"); await writeChannel.WriteAsync("There"); await writeChannel.WriteAsync("World"); await writeChannel.WriteAsync((string)null); }
protected override async Task Run(IBasicWriteChannel <string> writeChannel) { while (true) { var item = await _innerChannel.ReadAsync(); if (item == null) { await writeChannel.WriteAsync(null); return; } Console.WriteLine("{0}: {1}", _info, item); await writeChannel.WriteAsync(item); } }
protected override async Task Run(IBasicWriteChannel <string> writeChannel) { while (true) { var item = await _innerChannel.ReadAsync(); if (item == null) { await writeChannel.WriteAsync(null); return; } foreach (char c in item) { await writeChannel.WriteAsync(c.ToString()); } } }
protected abstract Task Run(IBasicWriteChannel <T> writeChannel);