Мои консольные приложения в Visual Studio автоматически закрываются, поэтому я хотел бы использовать что-то вроде C system("PAUSE")
для "приостановки" приложений в конце его выполнения, как я могу это достичь?
Как остановить автоматическое закрытие приложений С#?
Ответ 1
Console.ReadLine();
или
Console.ReadKey();
ReadLine()
ждет ↩, ReadKey()
ждет любой ключ (кроме клавиш-модификаторов).
Изменить: украл ключевой символ из Дарина.
Ответ 2
Вы можете просто скомпилировать (начать отладку) свою работу с помощью Ctrl + F5.
Попробуйте. Я всегда это делаю, и консоль показывает мне, что мои результаты открываются. Дополнительный код не требуется.
Ответ 3
Console.ReadLine()
, чтобы дождаться, пока пользователь Enter или Console.ReadKey
будет ждать любой клавиши.
Ответ 4
Попробуйте Ctrl + F5 в Visual Studio для запуска вашей программы, это добавит паузу с "Нажмите любую клавишу, чтобы продолжить..." автоматически без каких-либо Console.Readline() или ReadKey() функции.
Ответ 5
Использование:
Console.ReadKey();
Чтобы закрыть его, когда кто-то нажал любую клавишу, или:
Console.ReadLine();
Если пользователь набирает что-то и нажимает, введите.
Ответ 6
Ctrl + F5 лучше, потому что вам не нужны дополнительные строки. И вы можете, в конце концов, нажать режим входа и выхода из режима.
Но когда вы запускаете программу с F5 и ставите точку прерывания, вы можете отлаживать свое приложение и это дает вам другие преимущества.
Ответ 7
В качестве альтернативы вы можете отсрочить закрытие, используя следующий код:
System.Threading.Thread.Sleep(1000);
Обратите внимание, что Sleep
использует миллисекунды.
Ответ 8
Эти решения говорят о том, как работает ваша программа.
Вы можете отключить #if DEBUG
и #endif
при вызовах Консоли, но если вы действительно хотите, чтобы окно не закрывалось только на вашей машине dev в Visual Studio или если VS не работает, только если вы явно настройте его, и вы не хотите раздражать 'Press any key to exit...'
при запуске из командной строки, путь к использованию - использовать API System.Diagnostics.Debugger
.
Если вы хотите, чтобы это работало в 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();
}
Это также работает для отладки программ, которые нуждаются в повышенных привилегиях или которые должны быть способны поднять себя.
Ответ 9
Если вы не хотите, чтобы программа закрывалась, даже если пользователь нажимает любую клавишу;
while (true) {
System.Console.ReadKey();
};//This wont stop app