我目前正在编写一个非常简单的应用程序,但它会对操作系统进行更改,并在程序关闭时进行更改。
担心当然是程序崩溃了。我可以尽我所能防止它崩溃,或者处理事情,如果它崩溃了 - 但是我不能阻止某人强行关闭这个过程(除非我可以吗?)
有没有办法捕获该事件并在进程退出之前运行一个非常快速的清理?
答案 0 :(得分:2)
我不认为如果您的进程被杀死,您可以做任何事情 - 一种方法是让您的应用程序生成一个帮助程序进程,就像这种情况一样。当您的应用程序终止时,该进程可以检测到该操作并在关闭自身之前根据需要“修复”操作系统设置 - 显然这只有在其他进程不会被杀死时才会起作用。
答案 1 :(得分:1)
你可以挂钩UnhandledException。您无法停止应用程序终止,但您可以记录或进行一些清理。这允许您处理应用程序崩溃的情况。
某人实际上只是在杀死这个过程的条款,你无能为力。
答案 2 :(得分:0)
防守计划。
将原始设置写入文件。关闭时删除文件。启动时,检查文件是否存在 - 如果是,则您的进程被终止,并且您知道要将设置返回的内容。
编程201 - 事务的基础知识,应用于系统设置,程序运行时作为事务边界。
答案 3 :(得分:0)
如果您不介意与C或C ++代码进行一些互操作,并且如果您在Windows Vista或更高版本上运行,则可以使用Application Recovery和Restart API。这些API告诉Windows在发生灾难性事件时拦截您的进程,以便您可以在Windows完全终止进程之前调用一些清理代码。