当我在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.C
console key (C) or the Break key are pressed
simultaneously(Ctrl+C or Ctrl+Break)
.When the user presses either
Ctrl+C
orCtrl+Break
, theCancelKeyPress
event is fired and the application’sConsoleCancelEventHandler
event
handler is executed. The event handler is passed a
ConsoleCancelEventArgs
object
例
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"); }