处理强制退出

时间:2010-07-05 00:09:02

标签: c# events visual-studio-2010

有没有什么好方法可以在C#中强制退出?

我有一个无形的C#应用​​程序,通过串口与LCD通信。应用程序运行后,杀死它的唯一方法是使用任务管理器。这样做的问题在于程序在完成时需要关闭LCD,看起来我的Application.ApplicationExit事件在这种情况下不会被触发。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

  

应用程序运行后,杀死它的唯一方法是使用任务管理器。

我的主意是改变它。

在通知区域中粘贴一个图标,用户可以使用该图标正确关闭应用程序,或将其设置为以便再次运行应用程序将关闭已经运行的实例(如果存在)或任何其他方式听起来是个好主意。

要求用户使用任务管理器来关闭应用程序,这会让设计变得糟糕。

答案 1 :(得分:0)

在程序循环中编写代码(可能带有计时器)以读取文件或注册表项。例如,如果C:\ YOURPROGRAM \ CLOSEME中的文件包含文本“closeme”,请正常关闭程序。编写另一个编写C:\ YOURPROGRAM \ CLOSEME文件的程序。因此,每当您想要关闭程序时,请不要使用taskmanager,而是打开第二个程序。

答案 2 :(得分:0)

一些选项:

  • 使用可以启动和停止主进程的GUI编写单独的进程。例如,在Windows上安装Apache Web服务器时,服务器本身将作为服务安装。它可以从系统服务管理面板启动和停止,但它还附带一个位于通知区域的“监视器”进程,告诉您Apache是​​否正在运行,并允许您手动启动或停止它。
  • 如果您的用例可以接受,请将该应用程序设置为控制台应用程序。您可以在用户按下CTRL + C(请参阅Console.CancelKeyPress)时注册处理程序,以便在进程退出之前执行清理。这仍然不会让你处理从任务管理器中杀死进程的人,但这很容易做,并且根据你的情况可能会很好。