[C#]コンソールプログラムで、Ctrl-Cが押されてもプログラムを終了させない

Console.CancelKeyPressにイベントを登録することで、Ctrl-Cが押されたことを検出できます。
さらに、イベントハンドラ内でCancel=trueにすることで、プログラムの終了を阻止することが可能です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
 
class Test {
    public static void Main( String[] args ) {
 
        Console.CancelKeyPress += (sender, e) => {
            Console.WriteLine("CTRL+C が押されました");
            // trueにすると、プログラムを終了させない
            e.Cancel = true;
        };
 
        System.Console.WriteLine( "hello world" );
        System.Threading.Thread.Sleep( 5 * 1000 );
        System.Console.WriteLine( "program end" );
    }
}

関連記事

コメントを残す

メールアドレスが公開されることはありません。