目前我正在开发一个包含数学分析的桌面应用程序.我使用qt进行GUI和用c ++编写的项目.当用户开始分析时,我打开一个工作线程并启动一个进度条.到目前为止一切正常,当用户取消操作时问题开始.操作很复杂,我使用了几个函数和对象,我在几个分配/解除分配内存我想知道如何在取消操作中恢复.因为可能存在内存泄漏.我应该使用哪种模式或方法来强制安全地取消操作?
我的想法是抛出异常,但操作真的很复杂,所以我应该把try-catch放到我的所有函数中,还是有更通用的方式,模式..
编辑:问题是我的对象在范围之间转移,所以shared_ptr或auto_ptr不能解决我的问题,Flag的想法可以,但我认为它需要这么多代码,应该有一个简单的方法.
关闭工作线程的一种非常常见的方法是使用标志标记它,并让工作线程定期检查此标志.如果已标记,则应停止其工作流程,清理并退出.
在你的情况下这是否可能?