Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当我在 Qt 中执行我的线程时,start()我可以检查它是否正在运行QThread::isRunning ()。true如果线程仍在运行,它会返回。打电话后quit()我可以退出我的线程。
start()
QThread::isRunning ()
true
quit()
现在我的问题:
调用后quit(),我的isRunning ()查询应该返回false,对吗?同样QThread::isFinished ()应该返回false。
isRunning ()
false
QThread::isFinished ()
带着这个问题,我只想确认我理解了 QThread 的主要原则之一。
我可能是错的,但文档告诉我们 quit 和 exit(int) 完成线程事件循环。但是退出线程事件循环并不意味着线程已经完成。您甚至可以通过子类化和重新实现 run 方法来运行另一个 qthread,甚至无需启动事件循环。所以调用quit方法并不意味着线程isFinished()返回true。只需将自己连接到 finished() 信号并使用完成的线程做你想做的事。