Как остановить автоматическое закрытие консольных приложений C#? [дубликат]
На этот вопрос уже есть ответ здесь:
Мои консольные приложения в Visual Studio закрываются автоматически, поэтому я хотел бы использовать что-то вроде C system("PAUSE"), чтобы "приостановить" приложения в конце его выполнения, как я могу этого добиться?
9 ответов:
Console.ReadLine();Или
Console.ReadKey();
ReadLine()ждет ... ↩,ReadKey()ожидает любую клавишу (кроме клавиш-модификаторов).правка: украл ключевой символ у Дарина.
Вы можете просто скомпилировать (начать отладку) вашу работу с помощью Ctrl+F5 .
Попробуйте. Я всегда это делаю, и консоль показывает мне мои результаты, открытые на ней. Никакого дополнительного кода не требуется.
Попробуйте Ctrl + F5 в Visual Studio для запуска программы, это добавит паузу с "нажмите любую клавишу, чтобы продолжить...- автоматически, без всякой консоли.Функции Readline() или ReadKey ().
Использование:
Console.ReadKey();Для его закрытия, когда кто-то нажимает любую клавишу, или:
Console.ReadLine();Для того, когда пользователь вводит что-то и нажимает enter.
Ctrl + F5 лучше, потому что вам не нужны дополнительные строки. И вы можете, в конце концов, нажать enter и выйти из режима работы.
Но, когда вы запускаете программу с F5 и ставите точку останова, вы можете отладить свое приложение, и это дает вам другие преимущества.
В качестве альтернативы можно отложить закрытие, используя следующий код:
System.Threading.Thread.Sleep(1000);Обратите внимание, что
Sleepиспользует миллисекунды.
Упомянутые решения изменяют работу вашей программы.
Вы можете, конечно, поместить
#if DEBUGи#endifвокруг вызовов консоли, но если вы действительно хотите, чтобы окно закрывалось только на вашей машине разработки под Visual Studio или если VS не работает, только если вы явно настроили его, и вы не хотите раздражать'Press any key to exit...'при запуске из командной строки, путь к этому-использовать APISystem.Diagnostics.Debugger. {[8]]}Если вы хотите, чтобы это работало только в
DEBUG, просто оберните этот код в Метод[Conditional("DEBUG")] void BreakConditional().Это также работает для отладки программ, которые нуждаются в повышенных привилегиях, или которые должны быть в состоянии повысить себя.// Test some configuration option or another bool launch; var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED"); if (!bool.TryParse(env, out launch)) launch = false; // Break either if a debugger is already attached, or if configured to launch if (launch || Debugger.IsAttached) { if (Debugger.IsAttached || Debugger.Launch()) Debugger.Break(); }
Если вы не хотите, чтобы программа закрывалась, даже если пользователь нажимает любую клавишу;
while (true) { System.Console.ReadKey(); };//This wont stop app
Comments