
In order to avoid to add reference, you can use a simple trick, the so-called spin waiting, importing System.Threading: SpinWait.SpinUntil(() => false) This doesn't leak CPU and works successfully. However, it'll cause the CPU to overload, as it's therefore forced to iterate infinitely.Īt this point, you can opt to use class (but it requires you to add reference): Application.Run() The below example is the simplest one, to be put at the end of your program: while (true) If you want to keep your application opened, you have to do something in order to keep its process alive. To do that you can put the Console.ReadLine() in a finally block: #if DEBUG You might also want the window to stay open if an uncaught exception was thrown. Something like: #if DEBUGĬonsole.WriteLine("Press enter to close.") The best compromise is probably to call the Console.ReadLine method only when debugging the application by wrapping it in a preprocessor directive.


Adding this line to the end of your code (just before the return statement) will cause the application to wait for you to press a key before exiting.Īlternatively, you could start the application without the debugger attached by pressing Ctrl+ F5 from within the Visual Studio environment, but this has the obvious disadvantage of preventing you from using the debugging features, which you probably want at your disposal when writing an application. The Console.ReadLine method is one way of doing that. If you want to keep it open for debugging purposes, you'll need to instruct the computer to wait for a key press before ending the app and closing the window. When console applications have completed executing and return from their main method, the associated console window automatically closes. The issue here is that their Hello World Program is showing up then it would immediately close.īecause it's finished.
