QThread使用
基本使用请见:https://techieliang.com/2017/12/592/
在上文中提到了一个简单范例:
#include <QCoreApplication>
#include <QThread>
#include <QDebug>
class MyThread : public QThread {
protected:
void run() {
while(1) {
qDebug()<<"thread start:"<<QThread::currentThreadId();
msleep(500);
}
}
};
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
qDebug()<<"Main:"<<QThread::currentThreadId();
MyThread m;
m.start();
QThread::sleep(5);
m.terminate();
m.wait();
return 0;
}
此范例使用terminate强制关闭线程,此行为是很危险的,下面提供一种安全的关闭方式
#include <QCoreApplication>
#include <QThread>