5

コンソール アプリがあり、Control-C をキャプチャして正常にシャットダウンしたいと考えています。

次のコードがあります。

Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) =>
{
   Logger.Log("Control+C hit. Shutting down.");
   resetEvent.Set();
});

出力ウィンドウには次のように表示されます。

2010/6/16 3:24:34 PM: Control+C ヒット。シャットダウンしています。
^C

control-c 文字^Cが表示されないようにする方法はありますか? 大したことじゃないけど、アナル好きだからなぜかハマってしまう。

4

3 に答える 3

3

コンソールアプリケーションでEnvironment.Exitあるため、アプリケーションが終了していることを通知するために使用し、この方法で印刷を停止し^Cます。

ユーザーが を押したことを表す特定のエラー コードを提供することもできますCTRL+C

static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
    Console.WriteLine("Control+C hit. Shutting down."); 

    Environment.Exit(-1);
}
于 2010-06-17T09:36:49.420 に答える
2

これはうまくいくはずです...

Console.CancelKeyPress += new ConsoleCancelEventHandler((o, e) =>
{
    Console.WriteLine("Control+C hit. Shutting down.");
    Environment.Exit(0);
});

Console.ReadLine();
于 2010-06-17T09:40:47.693 に答える
0

これは必ずしも実装したいソリューションではありませんが、^C が表示されなくなります。

static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
    Console.WriteLine("Control+C hit. Shutting down.");     
    Process.GetCurrentProcess().Kill();
}
于 2010-06-17T02:39:46.297 に答える