捕获键击而不阻塞

时间:2015-08-10 13:33:18

标签: c# console-application keystore readline console.readline

我通常使用Console.ReadLine();来捕获单个击键。但是这个函数会阻止执行并一直等待它发生。

是否可以在循环内捕获它,如果它被按下并继续执行,如果不是?

最好的是与GUI应用程序类似的东西,它们会继续运行,并且只要执行了快捷方式,它就会被截获,并且会捕获一个事件。但是我怀疑控制台应用能够做到这一点。

第二个最佳解决方案是等待1秒然后返回的Console.ReadLine();。如果用户在调用函数时持有键盘按钮,则该函数识别键击并返回其char,否则函数返回null。

1 个答案:

答案 0 :(得分:1)

您是否阅读过MSDN Key press info for console

您可以使用Console.KeyAvailable来确定您是否确实想要获取队列中的密钥。