Qt: 多线程, 就是这么简单(确实非常简洁明了)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt: 多线程, 就是这么简单(确实非常简洁明了)相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <QApplication>
#include <QThread>
#include <QString>

class Thread : public QThread {
public:
Thread(QString name = "") {
stopped = false;
this->name = name;
}

void run() {
while (!stopped) {
std::cout << "In " << name.toStdString() << "‘s run()." << std::endl;
QThread::msleep(400);
}
}

void stop() {
stopped = true;
}

private:
volatile bool stopped;
QString name;
};

int main(int argc, char *argv[]) {
QApplication app(argc, argv);

Thread thread;
thread.start();
Thread thread1("Thread1");
thread1.start();
Thread thread2("Thread2");
thread2.start();

return app.exec();
}

在Widget中, 还可以使用如在继承自QObject 的 void showEvent(QShowEVent *event)中使用myTimerId = startTimer();
在void hideEvent(QHideEVent *event)中使用killTimer(myTimerId);
在void timerEvent(QTimerEvent *event)中更新数据
在void paintEvent(QPaintEvent *event)中动态显示数据.

 

http://www.cppblog.com/biao/archive/2008/03/21/45053.html

以上是关于Qt: 多线程, 就是这么简单(确实非常简洁明了)的主要内容,如果未能解决你的问题,请参考以下文章

Qt线程

多线程之死锁就是这么简单

多线程之死锁就是这么简单

Qt中暂停线程的执行(利用QMutex,超级简单明了)

使用 windows.h 库中的函数进行多线程

qt中如何实现多线程?