一、run实现的多线程
1.自定义类,继承自Qthread
2.线程函数(run):
void run() { while (!isInterruptionRequested()) { //执行内容 } }
3.开启线程:start();
4.结束线程
bool QuitThread(quint32 uiTimeout) { if (isRunning()) { requestInterruption(); quit(); return wait(uiTimeout);//uiTimeout等待时间,单位ms。ULONG_MAX表示一直等待 } }
二、MoveToThread
1.注意事项:
1.MoveToThread是QObject类的方法。即只有QObject和其派生类对象可以使用MoveToThread
2.使用MoveToThread的对象不能有父对象
3.对象的信号在线程中发射、槽在线程中中执行(只有通过槽函数的方式执行的方法才会在线程中z'zh)