捕获击键而不阻塞
capture keystroke without blocking
我通常使用 Console.ReadLine();
来捕获单个击键。但是这个函数会阻塞执行并一直等待它发生。
是否有可能在一个循环中,如果按下就捕获它,如果没有按下则继续执行?
最好的是类似于 GUI 应用程序的东西,它保留 运行 并且只要执行快捷方式,它就会被拦截并抛出一个事件来捕获。但我怀疑控制台应用程序是否能够做到这一点。
第二好的解决方案是 Console.ReadLine();
等待 1 秒然后 returns。如果用户在调用该函数时按住键盘按钮,该函数将使用其字符标识击键和 returns,否则函数 returns 为 null。
你读过MSDN Key press info for console了吗?
您可以使用Console.KeyAvailable
来确定您是否真的想要在队列中获取密钥。
我通常使用 Console.ReadLine();
来捕获单个击键。但是这个函数会阻塞执行并一直等待它发生。
是否有可能在一个循环中,如果按下就捕获它,如果没有按下则继续执行?
最好的是类似于 GUI 应用程序的东西,它保留 运行 并且只要执行快捷方式,它就会被拦截并抛出一个事件来捕获。但我怀疑控制台应用程序是否能够做到这一点。
第二好的解决方案是 Console.ReadLine();
等待 1 秒然后 returns。如果用户在调用该函数时按住键盘按钮,该函数将使用其字符标识击键和 returns,否则函数 returns 为 null。
你读过MSDN Key press info for console了吗?
您可以使用Console.KeyAvailable
来确定您是否真的想要在队列中获取密钥。