在C# 控制台應用程式中擷取Ctrl C (SIGINT)
透過按Ctrl C ( SIGINT),Console.CancelKeyKeyPress 事件可以是
使用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中文網其他相關文章!