在 C# 控制台应用程序中捕获 Ctrl C (SIGINT)
通过按 Ctrl C ( SIGINT),Console.CancelKeyPress 事件可以是
使用 Console.CancelKeyPress 事件:
当用户按下 Ctrl C 时,会引发 Console.CancelKeyPress 事件。通过向此事件注册事件处理程序,代码可以在程序终止之前执行。
Console.CancelKeyPress += delegate { // Perform cleanup operations };
当按下 Ctrl C 时,程序中的代码将执行事件处理程序,从而完成基本的清理任务。需要注意的是,委托之后的任何代码都不会被执行。
处理复杂场景:
对于立即终止任务不切实际的情况,可以采用不同的方法。以下代码演示了如何告诉程序在计算完成后正常退出:
bool keepRunning = true; Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; keepRunning = false; }; while (keepRunning) { // Perform work in small chunks }
通过将 e.Cancel 设置为 true,在事件处理程序之后继续执行。当按下 Ctrl C 时,keepRunning 变量被设置为 false,导致程序正常退出。
以上是如何在 C# 控制台应用程序中优雅地处理 Ctrl C 中断?的详细内容。更多信息请关注PHP中文网其他相关文章!