如何在应用程序被任务管理器杀死时保存数据?

时间:2016-07-22 09:15:40

标签: c++ windows visual-studio-2015

为了防止应用程序的数据丢失,导致"结束任务"从任务管理器,我试图在WM_CLOSE事件的函数处理程序中保存数据。

该应用程序成功保存数据,以防我通过Alt + F4关闭我的应用程序或"关闭"按钮。但是当我通过任务管理器将其杀死时,保存数据过程无法正常完成。保存进度似乎在中间结束了。

我尝试通过VS2015 IDE调试它,调试器在WM_CLOSE处理程序中成功拦截了一个断点,但它无法继续下去,点击F10跳过导致我的应用立即关闭。

在我的应用程序完全保存数据之前,有没有办法延迟终止进度?

我在下面找到了两个链接,但是他们没有帮助。

How to handle "End Task" from Windows Task Manager on a background process?

How does task manager kill my program?

1 个答案:

答案 0 :(得分:1)

任务管理器可能会决定您的应用程序没有响应,并终止它。你无能为力。

如果您想确保始终保存您的数据,您应该在后台持续保存(使用一些启发式方法,例如每分钟至少一次,最好在几秒钟内没有发生任何变化)。它更复杂,但即使您根本不接收WM_CLOSE也具有工作的优势,例如在断电的情况下。