QThread的执行从run()函数的执行开始;
在Qt中建立线程的主要目的就是为了用线程来处理那些耗时的后台操作,从而让主界面能及时响应用户的请求操作。
QThread的使用
链接
work对象
1,继承Qobject;
2,dowork();
使用work对象和QThread对象的controller对象
1,建立work,QThread对象;
2,work.moveToThread(QThread*)
调用controller对象
QThread成员函数
start
启动线程
dowork的触发和start的关系:
如果触发dowork,但是线程对象没有start,会怎样?
线程不开启,即使槽函数被触发,也不会被执行;
验证:对象和对象所在的线程是有对应关系的,只有对象的线程运行起来,对象的事件循环才会被运行。
原理
quit()
线程结束(退出)
wait()
等待线程退出
QThread::currentThreadId()
获取本线程ID
QThread::sleep(1);
线程休眠
finished
线程结束时触发的信号:
connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);
QThread *thread() const;
返回本线程对象