Performing some action while waiting for a key to be pressed in .NET console applications
September 30, 2016 Leave a comment
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:
static void Main(string[] args) { RunWaitingForKeyPressedSample(); } private static void RunWaitingForKeyPressedSample() { int counter = 0; while (!Console.KeyAvailable) { Thread.Sleep(1000); counter++; Debug.WriteLine("I've been waiting for you to press a key for {0} seconds...", counter); } Debug.WriteLine("Finally..."); }
Here’s an example output in the debug window:
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…
View all various C# language feature related posts here.