您的位置:首页 > 编程语言 > Qt开发

QThread之创建

2015-10-21 09:52 459 查看
1.继承QThread并且覆盖其中的run方法

2.调用start启动线程

#ifndef MYTHREAD_H
#define MYTHREAD_H

#include <QThread>
#include <QString>
#include <QDebug>

class myThread : public QThread
{
Q_OBJECT
public:
explicit myThread(QString str);
void run();
private:
QString mname;
signals:

public slots:
};

#endif // MYTHREAD_H


#include "mythread.h"

myThread::myThread(QString para):mname(para)
{
}
void myThread::run()
{
for(int i=0;i <= 100;i++){
qDebug() << this -> mname << " " << i;
}
}


3.这个基本跟java的一样,这个可以简化,我们只是开启一个线程去跑run的代码,有点小题大用,这时我们可以直接使用

QtConcurrent::run(myRunFunction,QString("A"));

他接受一个方法和参数

包含头文件#include
<QtConcurrent/qtconcurrentrun.h>

以及他会返回一个Future,这个在scala中比较常用,这种模式很有用,他可以让你直接控制线程的状态,例如我们可以通过

t1.waitForFinished();来等待结果,当然这是不好的,因为他是堵塞的,如果用回调的方式来监听结果就很棒

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: