4
我有一個使用QtConcurrent API來產生工作線程的Qt程序。我遇到的問題是,即使我退出Qt應用程序,工作線程也會繼續運行。退出Qt應用程序不會殺死衍生線程
我在我的菜單中有一個actionExit,這是我用來關閉應用程序或窗口角落中的「X」。有什麼辦法讓這些殺死與這個應用程序相關的所有線程?
謝謝
我有一個使用QtConcurrent API來產生工作線程的Qt程序。我遇到的問題是,即使我退出Qt應用程序,工作線程也會繼續運行。退出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);
你是什麼操作系統或線程庫?你能展示你的部分代碼嗎?如果你使用'pthread',我猜你的程序沒有被終止並被阻止。 – kamae
操作系統是Linux。我假設QtConcurrent在幕後使用pthread,但並非100%確定 – Derek