当Visual Studio停止debugging时,我真的不能清理吗?

我有一个控制台应用程序,运行一些脾气暴躁的硬件。 如果我没有很好地分离它,五分钟后窗户趋向于蓝屏。 我可以通过使用SetConsoleCtrlHandlerclosures应用程序。 但是当我在visual studio中打开“停止debugging”时,它会跳过这个过程,只是残酷地杀死程序。 截至2009年,似乎没有人能 解决这个问题 。

这仍然是这样吗? 如果我不小心打错了button,我真的必须住在蓝屏吗?

Solutions Collecting From Web of "当Visual Studio停止debugging时,我真的不能清理吗?"

杀死该进程是该按钮的用途。 如果你想程序正常终止,你需要让它运行完成。 您可以使用调试器的“继续”按钮,或者只是从过程中分离,然后以正常的方式退出程序。 或者你可以使用调试器来做一些让程序退出的东西,比如设置一个控制主循环的“完成”标志。

您可能会考虑将您的程序分为两部分:一个处理硬件特性的服务,向控制台应用程序提供一个“干净”的界面,另一个是与服务对话的控制台应用程序,而不是直接与硬件通信。

你直接的问题是即使任务管理器可以执行的TerminateProcess函数,它使你无法求助于干净地关闭。 即使你能解决Visual Studio的问题,也可以右键点击“End Process”,然后你就可以在同一条船上。

你的根本问题是写得不好的设备驱动程序。 即使您突然终止,这些驱动程序也不应该蓝屏。 如果您有选择,但是要使用它们,那么您可以尝试通过以管理权限运行,作为服务运行或将操作限制在短时间窗口内来防止进程。 或者你可以简单地训练你的操作员不要做那些会导致你的微妙的系统炸毁的事情。 希望。