2013-03-19 52 views
0

當我在Qt中執行我的線程start()我可以檢查它是否與QThread::isRunning()一起運行。如果線程仍在運行,它將返回true。在致電quit()後,我可以退出我的線程。一般QThread瞭解:退出()和isRunning()

現在我的問題:

調用quit()後,我isRunning()查詢應該返回false,對嗎?同樣QThread::isFinished()應該返回false

有了這個問題,我只想確認我瞭解QThread的主要原理之一。

+0

將「之後」替換爲「未來某個時刻」,這是所有保證線程給你的。 – 2013-03-19 20:36:43

+0

對於線程生命週期的一個非常好的解釋,試試這個:http://stackoverflow.com/questions/17045368/qthread-emits-finished-signal-but-isrunning-returns-true-and-isfinished-re – 2014-11-01 21:21:23

回答

0

我可能是錯的,但文檔告訴我們quit和exit(int)完成線程事件循環。但退出線程事件循環並不意味着線程完成。您甚至可以運行另一個qthread,而不必通過繼承和重新實現run方法來啓動事件循環。所以調用quit方法並不意味着線程isFinished()返回true。只需連接自己完成()信號,並完成你想要的線程。