我想实现一个系统,如果我使用readkey()从控制台读取一个值,但同时在后台等待1分钟左右以供用户输入,如果用户在指定的1分钟内未输入任何内容,取消控制台上的console.readkey()块并执行其他方法。
我现在拥有的代码
Task waitTask = Task.Delay(60000);
Task<ConsoleKeyInfo> inputTask = Task.Run(() => {
return Console.ReadKey();
});
Task.WhenAny(new[] { waitTask, inputTask });
switch (inputTask.Result.KeyChar) {
case 'c':
break;
case 'q':
Task.Run(async () => await Program.Exit(0).ConfigureAwait(false));
return false;
default:
Logger.Log("Unknown value entered! continuing to run the program...");
break;
}
由于某种原因它不起作用,我似乎无法弄清问题所在