我有一个控制台应用程序,我想捕获 Control-C 并正常关闭。
我有以下代码:
Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) =>
{
Logger.Log("Control+C hit. Shutting down.");
resetEvent.Set();
});
输出窗口显示:
6/16/2010 3:24:34 PM: Control+C hit. Shutting down.
^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);
}
关于C# 控制台应用程序 : Preventing Control-C from being printed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3057633/