图片来源:
stackoverflow
QThread 生命周期的工作方式如下:
- 调用 QThread::start()。
- 此时,isRunning() 应该开始返回 true。
- 线程内部开始。他们发出started()信号。
- 线程内部调用run()。
- 除非在子类中重写它,否则 run() 会调用 exec()。
- exec() 进入事件循环并停留在那里,直到调用 quit() 或 exit() 为止。
- exec() 和 run() 返回内部。
- 此时,isFinished() 应该开始返回 true,isRunning() 应该返回 false。
- 内部发出 Finished() 信号。
- 内部进行一些最后的清理。
- 线程真正终止。