在C#控制台应用程序中使用Keyboard.IsKeyDown

时间:2017-05-03 17:14:52

标签: c# console-application keyboard-events

我正在编写一个控制台应用程序,在控制台屏幕上显示某些数据,而不是检查键盘上的用户输入,最后根据需要处理它。所有单线程。

为此,我尝试使用System.Windows.Input命名空间中的Keyboard.IsKeyDown方法。和视觉工作室不允许它。 有谁知道为什么,可以帮助我吗? 我没有看到仅使用一个线程而没有计时器来实现该逻辑的其他方式。

1 个答案:

答案 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);
}