Приложение C # Console: предотвращение напечатана Control-C?
-
27-09-2019 - |
Вопрос
У меня есть приложение консоли, и я хочу захватить Control-C и изящно отключить.
У меня есть следующий код:
Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) =>
{
Logger.Log("Control+C hit. Shutting down.");
resetEvent.Set();
});
И выходные окна показывают:
16/16/2010 3:24:34 PM: Control + C Хит. Выключение.
^ C.
Есть ли способ предотвратить символ Control-C ^C
От появления появления? Это не огромный Сделка, но по какой-то причине я зацикливаю на нем, потому что я такой такой.
Решение
Быть консольным приложением, которое я бы использовал Environment.Exit
Чтобы сигнализировать, что приложение выходит и таким образом останавливает ^C
от печати.
Вы можете даже предоставить конкретный код ошибки, чтобы символизировать, что пользователь нажал Ctrl + C..
static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
Console.WriteLine("Control+C hit. Shutting down.");
Environment.Exit(-1);
}
Другие советы
Это должно работать ...
Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) =>
{
Console.WriteLine("Control+C hit. Shutting down.");
Environment.Exit(0);
});
Console.ReadLine();
Хотя это не обязательно решение, которое вы хотите реализовать, он предотвращает отображение ^ C:
static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
Console.WriteLine("Control+C hit. Shutting down.");
Process.GetCurrentProcess().Kill();
}