Performing some action while waiting for a key to be pressed in .NET console applications
November 28, 2017 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.