我目前正在处理具有 Console.CancelKey EventHandler 事件处理程序的 ac# 项目。我遇到的问题是,如果用户按下 Ctrl+C 来停止应用程序,则事件不会被触发,因为我认为它太忙于处理其他事情来处理事件。如果应用程序是安静的,即不需要做太多工作,则 Ctrl+C 会被捕获并运行该事件处理程序。
我假设我需要在一个单独的线程中监听事件处理程序以便理解它,但我将如何去做。
感谢您的任何帮助,您可以提供。
我目前正在处理具有 Console.CancelKey EventHandler 事件处理程序的 ac# 项目。我遇到的问题是,如果用户按下 Ctrl+C 来停止应用程序,则事件不会被触发,因为我认为它太忙于处理其他事情来处理事件。如果应用程序是安静的,即不需要做太多工作,则 Ctrl+C 会被捕获并运行该事件处理程序。
我假设我需要在一个单独的线程中监听事件处理程序以便理解它,但我将如何去做。
感谢您的任何帮助,您可以提供。
您可以尝试设置Console.TreatControlCAsInput
,这会阻止 CTRL+C 组合甚至在操作系统级别进行处理。需要注意的是,如果用户确实想要停止应用程序,他们要么必须使用 CTRL+BREAK,要么必须在运行事件处理程序后手动强制关闭应用程序。