ホームページ >バックエンド開発 >C++ >C# コンソール アプリケーションで Ctrl C 割り込みを適切に処理するにはどうすればよいですか?

C# コンソール アプリケーションで Ctrl C 割り込みを適切に処理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-05 08:04:44455ブラウズ

How Do I Gracefully Handle Ctrl C Interrupts in C# Console Applications?

C# コンソール アプリケーションで Ctrl C (SIGINT) を処理する方法

C# コンソール アプリケーションの一般的なシナリオは、ユーザーがクリーンアップ プロセスを管理することです。 Ctrl C (SIGINT) を押します。この信号は、アプリケーションに現在の実行を中断して終了するよう促します。この信号をトラップする方法を理解することは、適切に構造化されたユーザーフレンドリーなアプリケーションを実装するために非常に重要です。

Console.CancelKeyPress イベントの使用

Ctrl をインターセプトする主な方法C# の C は Console.CancelKeyPress イベントを通じて行われます。このイベントは、ユーザーが Ctrl C を押すとトリガーされます。これに応じて、プログラムが終了する前に実行したいクリーンアップ操作を含むデリゲートを定義できます。

Console.CancelKeyPress イベントの使用例を次に示します。

public static void Main(string[] args)
{
    Console.CancelKeyPress += delegate {
        // Perform cleanup operations here
    };

    while (true) // Keep the program running until Ctrl+C is pressed
    {

    }
}

ユーザーが Ctrl C を押すと、Console.CancelKeyPress イベントに割り当てられたデリゲートが実行されます。

長時間実行オペレーションの処理

一部のシナリオでは、アプリケーションは、すぐには中断できない長時間実行オペレーションを実行している可能性があります。このような場合、Console.CancelKeyPress の使用は適切ではない可能性があります。

別の解決策は、set-reset イベントを使用することです。手動リセットを含むイベントを作成し、Console.CancelKeyPress イベントに割り当てられたデリゲートでそれをサブスクライブします。ユーザーが Ctrl C を押すと、イベントが設定されます。メイン ループはイベントのステータスをチェックし、イベントが設定されたら正常に終了できます。

結論

C# コンソール アプリケーションでの Ctrl C (SIGINT) のトラップは不可欠ですユーザーがプログラムを中断して正常に終了できるようにします。 Console.CancelKeyPress イベントや set-reset イベントなどの代替アプローチを利用することで、Ctrl C 信号を効果的に処理し、ユーザーフレンドリーなアプリケーションを維持できます。

以上がC# コンソール アプリケーションで Ctrl C 割り込みを適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。