Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Console Application: Preventing Control-C from being printed?

I have a console app, and I want to capture Control-C and shutdown gracefully.

I have the following code:

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

And the output windows shows:

6/16/2010 3:24:34 PM: Control+C hit. Shutting down.
^C

Is there a way to prevent the control-c character ^C from appearing? It's not a huge deal, but for some reason Ill be fixated on it because I'm anal like that.

like image 961
Alan Avatar asked Jun 16 '10 22:06

Alan


1 Answers

Being a console application I would use Environment.Exit to signal that the application is exiting and this way stopping the ^C from being print.

You could even provide a specific error code to symbolize that the user pressed CTRL+C.

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

    Environment.Exit(-1);
}
like image 176
João Angelo Avatar answered Sep 23 '22 13:09

João Angelo