Performing some action while waiting for a key to be pressed in .NET console applications

You can wait for the user to press some button in a .NET console application using the Console.ReadKey() method. That’s simple and easy to use, but occasionally you might want to perform some action while waiting for the user to press a key.

The KeyAvailable property of the Console object helps you achieve just that.

The following code sample will print a message every second that passes without you pressing a key. After that the while loop exits and the console window will close since that is the end of this simple application:

I’ve been waiting for you to press a key for 1 seconds…
I’ve been waiting for you to press a key for 2 seconds…
I’ve been waiting for you to press a key for 3 seconds…
I’ve been waiting for you to press a key for 4 seconds…
I’ve been waiting for you to press a key for 5 seconds…
Finally…