我怀疑这甚至是可能的。因此,您的应用程序正在运行,用户决定通过任务管理器结束进程。在 process.kill 期间是否有保存数据的方法/操作?我怀疑有,但我不得不问。
此外,如果用户关闭/重新启动 PC(如 Windows 更新/手动重新启动),应用程序将执行什么操作?Window_Unloaded?关于第二个问题,我想找到一种方法来确保我的应用程序不会显示为“如果您想重新启动,请终止此应用程序”的情况并希望保存所需的数据。
非常感谢您的两分钱!
我怀疑这甚至是可能的。因此,您的应用程序正在运行,用户决定通过任务管理器结束进程。在 process.kill 期间是否有保存数据的方法/操作?我怀疑有,但我不得不问。
此外,如果用户关闭/重新启动 PC(如 Windows 更新/手动重新启动),应用程序将执行什么操作?Window_Unloaded?关于第二个问题,我想找到一种方法来确保我的应用程序不会显示为“如果您想重新启动,请终止此应用程序”的情况并希望保存所需的数据。
非常感谢您的两分钱!
除非你有两个进程,否则不可能做你想做的事;一个监视另一个的状态并在其终止时做一些事情。看门狗进程可能是没有 GUI的Windows 服务应用程序。
当正常关机发生时,Windows 会向每个打开的应用程序发送退出消息。您可以在收到消息后运行一些代码(通常是家务)并退出应用程序。这应该不会花很长时间,否则 Windows 会自动询问用户是否要终止应用程序。
强制关闭会立即杀死所有进程(没有特定/可预测的顺序)。所以你不能(容易)检测到它。
我建议您尽快保存所需的所有内容,以防止在应用程序进程被终止时丢失数据。
如果有什么东西终止了你正在运行的应用程序,那么你就没有机会做任何事情,只能死掉。您修改您的应用程序,以便始终将所有数据保存到某个持久位置,因此如果应用程序死亡,持久数据仍然存在。显然,您必须为此进行设计。然后,如果用户执行“保存”,您将提交到“真实”数据存储。
如果 Windows 将重新启动,它应该向您的应用程序发送一条消息,您可以处理该消息。但是,不确定这是否适用于所有 GUI/控制台/服务类型的应用程序。