QThread结束状态
QThread finished state
QThread * thread = new QThread();
qDebug() << "Finished: " << thread->isFinished();
控制台是:
Finished: 0
线程 从未 启动,不应 isFinished()
returns true (1) 而不是 假 (0) ?
注意:isRunning
returns 0 是正确的。
bool QThread::isFinished() const
Returns true if the thread is finished; otherwise returns false.
See also isRunning().
bool QThread::isRunning() const
Returns true if the thread is running; otherwise returns false.
See also isFinished().
要完成的线程必须事先启动。
没有。 finished 状态表明在调用 quit()
或 exit()
之前。它是接收 finished()
信号的替代方法。
quit()
和 exit()
导致 run()
(这是线程中实际在单独线程中运行的唯一部分)返回到您的 QThread
实例属于。之后执行清理程序 - 无法再处理指定删除事件旁边的事件。
已触发完成状态,您可以安全地删除 QThread
的实例。 finished()
信号被发出(在大多数情况下连接到驻留在单独线程中的对象的 deleteLater()
插槽)和 isFinished()
returns true
.
当然,如果您还没有启动线程,它就无法完成,因为它永远不会 运行。 :D 开个玩笑,删除一个根本没有启动的 QThread
实例是完全安全的。
如果您对此更感兴趣,我建议您查看 QThread
的源代码,了解 class 的结构及其实现方式。
QThread * thread = new QThread();
qDebug() << "Finished: " << thread->isFinished();
控制台是:
Finished: 0
线程 从未 启动,不应 isFinished()
returns true (1) 而不是 假 (0) ?
注意:isRunning
returns 0 是正确的。
bool QThread::isFinished() const
Returns true if the thread is finished; otherwise returns false.
See also isRunning().
bool QThread::isRunning() const
Returns true if the thread is running; otherwise returns false.
See also isFinished().
要完成的线程必须事先启动。
没有。 finished 状态表明在调用 quit()
或 exit()
之前。它是接收 finished()
信号的替代方法。
quit()
和 exit()
导致 run()
(这是线程中实际在单独线程中运行的唯一部分)返回到您的 QThread
实例属于。之后执行清理程序 - 无法再处理指定删除事件旁边的事件。
已触发完成状态,您可以安全地删除 QThread
的实例。 finished()
信号被发出(在大多数情况下连接到驻留在单独线程中的对象的 deleteLater()
插槽)和 isFinished()
returns true
.
当然,如果您还没有启动线程,它就无法完成,因为它永远不会 运行。 :D 开个玩笑,删除一个根本没有启动的 QThread
实例是完全安全的。
如果您对此更感兴趣,我建议您查看 QThread
的源代码,了解 class 的结构及其实现方式。