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