gpt4 book ai didi

c# - 预测程序会崩溃

转载 作者:可可西里 更新时间:2023-11-01 18:02:01 25 4
gpt4 key购买 nike

我使用谷歌浏览器已有一段时间了,我注意到它具有非常优雅的崩溃控制功能。

就在崩溃之前,谷歌浏览器给出了一条消息,说“哇!谷歌浏览器崩溃了。现在重新启动吗?”。紧接着,我会得到一个标准的 Windows XP“这个程序遇到了问题,需要关闭。”使用“调试”、“不发送”和“发送错误报告”按钮。

我的问题是如何编写已编译的应用程序以提前检测崩溃情况?如果您了解如何使用任何编程语言/平台进行操作,那就太好了。

谢谢

最佳答案

Google Chrome 使用一种技术(通常称为进程分离),其中“主机”UI 管理它可以检测到的子进程变得无响应(或者更糟,抛出错误并关闭)。它会为您打开的每个选项卡启动一个新进程。

Here's an article对此进行更详细的描述。

使用 .net 的 Process类,您可以启动进程,检查它们是否响应,甚至杀死它们。

如果你想在你自己的窗口中嵌入一个进程的窗口,你可以使用平台函数,例如 SetParent在另一个窗口中移动一个窗口。恐怕在使用 Forms 时我不知道 SetParent 的托管替代方案,但我怀疑存在一个替代方案,因此在使用 SetParent 之前搜索它是值得的。

如果主机进程崩溃,只需使用 AppDomain.CurrentDomain.UnhandledException 之类的东西,您就可以收到发生顶级异常的通知,但在这个阶段您不太可能能够预测应用中对象的状态并重新启动(连同一些日志记录和给用户的通知)可能是您唯一明智的选择。

处理顶级异常是 covered in detail here .

关于c# - 预测程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com