【发布时间】:2016-07-22 09:15:40
【问题描述】:
为了防止应用程序的数据因任务管理器的“结束任务”而丢失,我正在尝试将数据保存在 WM_CLOSE 事件的函数处理程序中。
如果我通过 Alt+F4 或“关闭”按钮关闭我的应用程序,应用程序会成功保存数据。但是当我通过任务管理器杀死它时,保存数据过程无法正确完成。保存进度好像中途终止了。
我尝试通过 VS2015 IDE 对其进行调试,调试器成功拦截了 WM_CLOSE 处理程序中的断点但无法继续,按 F10 跳过导致我的应用立即关闭。
有什么方法可以延迟终止进度,直到我的应用程序完全保存数据?
我在下面找到了两个链接,但它们没有帮助。
How to handle "End Task" from Windows Task Manager on a background process?
【问题讨论】:
-
当您调试您的应用程序时,任务管理器认为它没有响应,并终止了它。您是否尝试过编写日志文件?您的保存过程需要多长时间?
-
@Dutwo 通常需要不到 500ms。我尝试记录到一个文件,但有时它会记录,但并非总是如此。
-
如果我想在任务管理器中杀死你的应用程序,那我为什么要它保存任何东西?!我想要的只是立即终止的过程。对用户友好。
-
@Christian Hackl,对!我曾就此事与我的客户强烈争论过,但他们坚持要拥有这个“功能”。
标签: c++ windows visual-studio-2015