第一种:
自定义一个MyThread类然后使用它:
MyThread *t=new MyThread();
t->start(); //启动线程
这样便启动了额。它默认是分离的线程。
至于MyThread的定义,他需要继承Thread类,如:
MyThread.h
#include <QThread>
class MyThread : public QThread
{
Q_OBJECT
public:
explicit MyThread(QThread *parent = 0);
private:
virtual void run();
};
MyThread.cpp
#include "mythread.h"
MyThread::MyThread(QThread *parent)
: QThread(parent)
{
}
void MyThread::run() //start调用后,会执行该函数
{
//做点啥
}
第二种:
使用movetothread;
//....省略
Worker *w=new Worker();
QThread *t=new QThread();
movetothread(&t); //w对象转移到线程t中
connect(this,SIGNAL(send_sigal()),w,SLOT(do_something()));
t->start();
emit send_sigal();
//...省略