我正在编写一个控制台应用程序,在控制台屏幕上显示某些数据,而不是检查键盘上的用户输入,最后根据需要处理它。所有单线程。
为此,我尝试使用System.Windows.Input命名空间中的Keyboard.IsKeyDown方法。和视觉工作室不允许它。 有谁知道为什么,可以帮助我吗? 我没有看到仅使用一个线程而没有计时器来实现该逻辑的其他方式。
答案 0 :(得分:2)
使用Console.ReadKey()
在控制台应用程序中读取键盘输入。
请注意,这是一个阻止通话。如果您不想阻止,请与Console.KeyAvailable
结合使用。例如,如果每隔10秒按一次键,该程序将循环显示:
static void Main(string[] args)
{
do
{
if (Console.KeyAvailable)
{
var key = Console.ReadKey();
Console.WriteLine(key.Key);
}
else
{
Console.WriteLine("No key pressed");
}
System.Threading.Thread.Sleep(100);
} while (true);
}