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 サイトの他の関連記事を参照してください。