一般QThread理解:quit()和isRunning()

时间:2013-03-19 09:37:10

标签: c++ qt

当我使用start()在Qt中执行我的线程时,我可以检查它是否与QThread::isRunning ()一起运行。如果线程仍在运行,它将返回true。在调用quit()后,我可以退出我的主题。

现在我的问题:

致电quit()后,我的isRunning ()查询应该返回false,我是对的吗?同样QThread::isFinished ()应返回false

有了这个问题,我只想确认我理解QThread的主要原则之一。

1 个答案:

答案 0 :(得分:0)

我可能错了,但文档告诉我们quit和exit(int)完成了线程事件循环。但退出线程事件循环并不意味着线程已完成。您甚至可以通过子类化和重新实现run方法来运行另一个qthread而不启动事件循环。所以调用quit方法并不意味着线程isFinished()返回true。只需将自己连接到finished()信号,然后用完成的线程做你想做的事。