public async Task RunQuestionOne(ICharacterReader reader, IOutputResult output) { var dt = new DeveloperTest(); await dt.ProcessReaderAsync(reader); await dt.Print(output); }
public async Task RunQuestionTwo(ICharacterReader[] readers, IOutputResult output) { var dt = new DeveloperTest(); var tasks = readers.Select(dt.ProcessReaderAsync).ToList(); var printCounterTask = new Task(() => dt.DelayedPrint(output)); printCounterTask.Start(); Task.WhenAll(tasks).ContinueWith(x => dt.Print(output).ContinueWith(_ => { dt.Finished = true; })).Wait(); printCounterTask.Wait(); }