首页 > 解决方案 > 每次按下按钮时是否可以调用特定方法,即使控制台不期望用户输入?

问题描述

我正在制作一个用于区分功能的程序,并希望在按下“esc”后立即调用特定方法。

到目前为止,我已经尝试通过谷歌找到答案,但我似乎找不到任何有效的方法。有谁知道这在 C# 控制台应用程序中是否可行?

标签: c#consoleconsole-application

解决方案


没有监听按键的事件。只有Console.ReadKey. Task但是您可以使用s将其转换为回调。像这样:

public static void RegisterKeyHandler(Action<ConsoleKeyInfo> handler)
{
    Task.Run(() =>
    {
        while (true)
        {
            var key = Console.ReadKey();
            handler(key);
        }
    });
}

这仅在控制台窗口聚焦时接收键。


推荐阅读