c# - 每次按下按钮时是否可以调用特定方法,即使控制台不期望用户输入?
问题描述
我正在制作一个用于区分功能的程序,并希望在按下“esc”后立即调用特定方法。
到目前为止,我已经尝试通过谷歌找到答案,但我似乎找不到任何有效的方法。有谁知道这在 C# 控制台应用程序中是否可行?
解决方案
没有监听按键的事件。只有Console.ReadKey
. Task
但是您可以使用s将其转换为回调。像这样:
public static void RegisterKeyHandler(Action<ConsoleKeyInfo> handler)
{
Task.Run(() =>
{
while (true)
{
var key = Console.ReadKey();
handler(key);
}
});
}
这仅在控制台窗口聚焦时接收键。
推荐阅读
- flutter - 我在绘图仪中使用相机插件。我想在每一页上都有一个相机。我认为我们需要解决概率变量问题
- python - 来自 Django 中 Queryset 的特定查询
- apache - htaccess 从文件夹重定向到外部 URL
- javascript - 如何修复我的 heroku 部署应用程序的内容安全策略?
- javascript - 为什么 clearinterval() 不会停止 JS 中的 setInterval()?
- html - 浏览器启动时是否有让 TestCafe Studio 选择客户端证书?
- spring-boot - 在 kotlin 数据类中,@field:NotBlank 不起作用
- python - django.db.utils.ProgrammingError:set_session 不能在事务中使用
- javascript - bootstrap 5 中的更改以使控件假定最大大小
- c# - 用于更新订单数量的按钮未按预期工作