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



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



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

775   9  

9 ответов:

Console.ReadLine();

Или

Console.ReadKey();

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

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

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

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

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

Console.ReadLine() ждать, пока пользователь введет или Console.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...' при запуске из командной строки, путь к этому-использовать API System.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

    Ничего не найдено.