1
關閉GUI線程時參考這裏如何終止/關閉/ Qt中
How to run a timer inside a QThread?
,如果能遇到SIGSEV錯誤的情況下,主要是沒有提到報告的解決方案代碼退出正確的線(gui)線程關閉(例如用X按鈕)。
我的問題是我應該如何處理(如果我應該在第一個地方)終止第二個線程的情況下GUI線程終止?
如果一旦GUI終止已公佈的數據/事件不再相關可我只是
m_thread->terminate();
在主窗口的析構函數
或重寫的closeEvent()?
如果數據/事件相關而不是?
除非完全被迫這樣做,否則應避免試圖明確終止用戶代碼中的線程,特別是GUI用戶代碼。不要試圖設計需要顯式線程終止的應用程序。永遠不要設置任何類型的「終止」標誌,然後用join()或任何其他類型的等待在GUI'OnClose'事件處理程序,表單析構函數或類似的形式中等待。 – ThingyWotsit
[GUI應用程序退出時退出QThread]的可能重複(http://stackoverflow.com/questions/41411746/exit-qthread-when-gui-application-exits) – m7913d
另請參閱[QThread :: terminate]的Qt文檔。 (http://doc.qt.io/qt-5/qthread.html#terminate)和[QThread](http://doc.qt.io/qt-5/qthread.html#details)本身。提供了一個明確的例子。 – m7913d