How to keep a .NET console app running?
Solution 1:
you always want to prevent using while loops, especially when you are forcing the code to recheck variables. It wastes CPU resources and slows down your program.
I would definitely say the first one.
Solution 2:
Alternatively, a more simple solution is just:
Console.ReadLine();
Solution 3:
You can do that (and remove the CancelKeyPress
event handler) :
while(!_quitFlag)
{
var keyInfo = Console.ReadKey();
_quitFlag = keyInfo.Key == ConsoleKey.C
&& keyInfo.Modifiers == ConsoleModifiers.Control;
}
Not sure if that's better, but I don't like the idea of calling Thread.Sleep
in a loop.. I think it's cleaner to block on user input.
Solution 4:
I prefer using the Application.Run
static void Main(string[] args) {
//Do your stuff here
System.Windows.Forms.Application.Run();
//Cleanup/Before Quit
}
from the docs:
Begins running a standard application message loop on the current thread, without a form.