退出Qt应用程序不会杀死生成的线程

时间:2011-07-21 17:31:32

标签: c++ multithreading qt

我有一个Qt程序正在使用QtConcurrent API来生成工作线程。我遇到的问题是,即使我退出Qt应用程序,工作线程也会继续运行。

我的菜单中有一个actionExit,这是我用来关闭应用程序或窗口角落的“X”。有没有办法让这些杀死与这个应用程序相关的所有线程?

由于

1 个答案:

答案 0 :(得分:6)

您确定UI应用程序确实关闭了吗?你可能会失踪:

qApp->setQuitOnLastWindowClosed(true);

否则QT只会隐藏你的窗口。调试把断点放在你的后面 mainWindow->exec();并查看是否真的达到了。

如果你确认exec()返回并且QTConcurrent真的挂起(可能是http://lists.trolltech.com/qt-interest/2008-06/thread00414-0.html),那么执行:

exit(0);