C#取消Console.ReadKey()

时间:2019-06-04 05:30:33

标签: c# .net-core console

我想实现一个系统,如果我使用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;
        }

由于某种原因它不起作用,我似乎无法弄清问题所在

0 个答案:

没有答案