首頁 >後端開發 >C++ >如何在 C# 控制台應用程式中優雅地處理 Ctrl C 中斷?

如何在 C# 控制台應用程式中優雅地處理 Ctrl C 中斷?

Barbara Streisand
Barbara Streisand原創
2024-12-27 09:38:13942瀏覽

How Can I Gracefully Handle Ctrl C Interrupts in a C# Console Application?

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn