0

当我在 Qt 中执行我的线程时,start()我可以检查它是否正在运行QThread::isRunning ()true如果线程仍在运行,它会返回。打电话后quit()我可以退出我的线程。

现在我的问题:

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

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

4

1 回答 1

0

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

于 2013-03-19T09:49:40.933 回答