C# 控制台应用程序 : Preventing Control-C from being printed?

标签 c# console-application control-characters

我有一个控制台应用程序,我想捕获 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/

相关文章:

c# - 我可以通过 Windows 窗体弹出帮助 "speech bubble"吗?

c++ - 如何跟踪 C++14 控制台应用程序的启动次数?

regex - 使用正则表达式匹配除三个之外的 Unicode 控制字符

c# - 通过 Unicode 编码检查 TextCompositionEventArgs.ControlText

c# - 为什么RabbitMQ在Linux上连接失败,但在Windows上可以连接?

c# - 在什么情况下 SynchronizedCollection<T>.Remove() 会返回 false?

c# - 通用 Windows 平台中找不到文件异常

c# - 在 .NET 任务中发送电子邮件在控制台应用程序中不起作用

c# - 如何从 Windows 服务运行控制台应用程序?

html - HTML 中的任意换行符?