后台处理:如何在完成后检查对象是否仍然存在

时间:2017-02-16 12:26:59

标签: c++ multithreading

我有一个对象MyClass,它正在分离的线程中启动一些后台处理。

内部MyClass标头文件:

    std::unique_ptr<std::thread> loadingThread;

内部MyClass impl文件:

    loadingThread.reset(new std::thread(&MyClass::acquireFileModel, this));
    loadingThread->detach();

acquireFileModel方法中,我们进行需要一段时间才能完成的同步调用。在此期间,MyClass实例可能会被破坏(它与UI中的某个页面相关)。

在同步调用完成后,如何检查我的实例是否仍然存在?我无法对数据做任何事情,如果启动后台线程的对象实例已经消失,应该放弃。

我是否应该从另一个指向MyClass的弱指针的对象启动工作,因此我可以检查指针后知道对象是否仍然存在?

0 个答案:

没有答案