首页 > 解决方案 > 是否有与 Console.ReadKey() 等效的内置异步方法?

问题描述

我正在用 C# 编写一个简单的控制台应用程序。

Console.In我在 System 或 System.Core Assembly 中或其他任何地方都找不到任何等效的 Console.ReadKey() 异步方法。

是否有任何内置函数可以异步读取来自 Stdout 的 ReadKey?

我在 .NET Framework 4.7.2 和 .NET Core 2.1 中使用过 C# 7.3。但问题是针对任何平台(如 .NET Framework、.NET Core、Mono 等)中的任何当前或未来版本的 C#。


仅供专家注意:我知道如何手动实现它,因此我不需要任何示例代码另外,我现在没有兴趣为此添加任何其他库。我只是要求提供信息而不是解决方法。

标签: c#.net.net-coremonoclass-library

解决方案


似乎 C# 中没有自然的方法可以帮助您做到这一点。为了解决这个问题,我尝试了以下两种方法:

  1. 实现一个键盘钩子。请参阅MSDN 链接以供参考。
  2. Console.ReadKey()从另一个进程调用。参考堆栈溢出

根据你的情况,你可以选择一个。


推荐阅读