private static async Task RunPrompt() { var config = new PromptConfig(); var showTask = ShowPrompt(config); var quotesTask = GetSpeed(config); await Task.WhenAll(showTask, quotesTask); }
private static async Task ShowPrompt(PromptConfig config) { var words = ReadFrom("quotes.txt"); foreach (string w in words) { Console.Write(w); if (!String.IsNullOrWhiteSpace(w)) { await Task.Delay(config.DelayInMs); } } }
private static async Task GetSpeed(PromptConfig config) { Action work = () => { do { var key = Console.ReadKey(true); if (key.KeyChar == '+') { config.UpdateDelay(-50); } else if (key.KeyChar == '-') { config.UpdateDelay(50); } } while (!config.GetDone()); }; await Task.Run(work); }