Как остановить автоматическое закрытие консольных приложений C#? [дубликат]

этот вопрос уже есть ответ здесь:

  • почему окно консоли закрывается сразу после отображения моего вывода? 18 ответов

мои консольные приложения в Visual Studio закрываются автоматически, поэтому я хотел бы использовать что-то вроде C system("PAUSE") чтобы "приостановить" приложения в конце его выполнения, как можно Я достигну этого?

9 ответов


Console.ReadLine();

или

Console.ReadKey();

ReadLine() ждет , ReadKey() ожидает любой клавиши (кроме клавиш-модификаторов).

Edit: украл ключевой символ у Дарина.


вы можете просто скомпилировать (начать отладку) свою работу с Ctrl+Ф5.

попробовать его. Я всегда это делаю, и консоль показывает мне мои результаты, открытые на нем. Дополнительный код не требуется.


попробовать Сочетание Клавиш Ctrl + Клавишу F5 в Visual Studio для запуска программы это добавит паузу с "нажмите любую клавишу, чтобы продолжить...- автоматически, без всякой консоли.Функции Readline() или ReadKey ().


Console.ReadLine() ждать, пока пользователь Enter или Console.ReadKey ждать любой ключ.


использование:

Console.ReadKey();

для его закрытия, когда кто-то нажимает любую клавишу, или:

Console.ReadLine();

Для когда пользователь вводит что-то и нажимает enter.


Ctrl + F5 лучше, потому что вам не нужны дополнительные строки. И вы можете, в конце концов, нажать enter и выйти из режима работы.

но, когда вы запускаете программу с F5 и ставите точку останова, вы можете отлаживать свое приложение, и это дает вам другие преимущества.


кроме того, вы можете отложить закрытие, используя следующий код:

System.Threading.Thread.Sleep(1000);

Примечание Sleep использует миллисекунд.


эти решения, упомянутые изменить, как работает ваша программа.

вы можете сбиться с курса #if DEBUG и #endif вокруг вызовов консоли, но если вы действительно хотите предотвратить закрытие окна только на вашем компьютере dev под Visual Studio или если VS не работает, только если вы явно настроили его, и вы не хотите раздражать 'Press any key to exit...' при запуске из командной строки, путь заключается в использовании System.Diagnostics.Debugger API.

если вы только хотите, чтобы это работало в 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();
}

это также работает для отладки программ, которые нуждаются в повышенных привилегиях или которые должны быть в состоянии поднять себя.


Если вы не хотите, чтобы программа закрывалась, даже если пользователь нажимает anykey;

 while (true) {
      System.Console.ReadKey();                
 };//This wont stop app