Search code examples
c#console-application

Listen for key press in .NET console app


How can I continue to run my console application until a key press (like Esc is pressed?)

I'm assuming its wrapped around a while loop. I don't like ReadKey as it blocks operation and asks for a key, rather than just continue and listen for the key press.

How can this be done?


Solution

  • Use Console.KeyAvailable so that you only call ReadKey when you know it won't block:

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