1

我有一个控制台应用程序,它启动多个工作线程,几乎不需要同步。如果其中一个线程出现异常,我会使用boost::copy_exception它来将其返回到主线程。但是当我在检测到工作线程错误后退出主线程中的应用程序(使用boost::rethrow_exception或使用)时,我得到exit(1)"pure virtual function called."

似乎其他工作线程仍在各个点运行,并且它们所依赖的一些对象在工作线程终止之前被主线程销毁(部分?)。我有点猜测,因为当我附加调试器时自然不会发生这种情况。

我怎样才能同时杀死所有线程以避免这种情况,最好不要添加大量的中断点?或者也许我完全误解了这个错误......

我在 Windows 7 64 位上使用 MSVC 9。

4

0 回答 0