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

Exiting Qt application does not kill spawned threads

本文关键字:派生 线程 Qt 应用程序 退出      更新时间:2023-10-16

我有一个Qt程序,使用QtConcurrent API来生成工作线程。我遇到的问题是,工作线程继续前进,即使我退出Qt应用程序。

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

谢谢

您确定UI应用程序真的关闭了吗?您可能缺少:

qApp->setQuitOnLastWindowClosed(true);

否则QT只会隐藏你的窗口。要进行调试,请将断点放在mainWindow->exec();,看是否真的到达。

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

exit(0);