如何继续运行控制台应用程序直到按下键(例如按下ESC)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (130)

如何继续运行控制台应用程序直到按下键(例如按下ESC)?

我不想使用ReadKey因为它阻止操作并会请求一个键,而不是继续并监听按键。

我该如何做到的呢?

提问于
用户回答回答于

你可以稍微改变你的方法--使用Console.ReadKey()要停止应用程序,但要在后台线程中完成你的程序:

static void Main(string[] args)
{
    var myWorker = new MyWorker();
    myWorker.DoStuff();
    Console.WriteLine("Press any key to stop...");
    Console.ReadKey();
}

myWorker.DoStuff()函数,然后在后台线程上调用另一个函数(使用Action<>()Func<>()是一种简单的方法),然后立即返回。

用户回答回答于

使用Console.KeyAvailable当你知道它不会被阻挡的时候,所以你只能使用ReadKey函数

Console.WriteLine("Press ESC to stop");
do {
    while (! Console.KeyAvailable) {
        // Do something
   }       
} while (Console.ReadKey(true).Key != ConsoleKey.Escape);

所属标签

可能回答问题的人

  • uncle_light

    5 粉丝518 提问7 回答
  • 学生

    3 粉丝476 提问7 回答
  • o o

    4 粉丝494 提问5 回答
  • 富有想象力的人

    3 粉丝0 提问5 回答

扫码关注云+社区

领取腾讯云代金券