当我在Release中运行以下内容时,按下CTRL C会成功终止该应用程序. 在Debug中运行时,按下CTRL C会在下面的while循环中挂起. 为什么?有没有解决的办法? static void Main(string[] args){ while (true)
在Debug中运行时,按下CTRL C会在下面的while循环中挂起.
为什么?有没有解决的办法?
static void Main(string[] args)
{
while (true)
{
// Press CTRL + C...
// When running in Release, the app closes down
// When running in Debug, it hangs in here
}
}
一种方法是实现这一点是使用
Console.CancelKeyPress
Occurs when the Control modifier key
(Ctrl)and either the
ConsoleKey.Cconsole key (C) or the Break key are pressed
simultaneously(Ctrl+C or Ctrl+Break).When the user presses either
Ctrl+CorCtrl+Break, theCancelKeyPress
event is fired and the application’sConsoleCancelEventHandlerevent
handler is executed. The event handler is passed a
ConsoleCancelEventArgsobject
例
private static bool keepRunning = true;
public static void Main(string[] args)
{
Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
e.Cancel = true;
keepRunning = false;
};
while (keepRunning)
{
// Do stuff
}
Console.WriteLine("exited gracefully");
}
