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>
#include <QDebug>
class MyThread

本文介绍了如何安全地结束QThread线程,避免使用terminate()函数带来的风险。通过设置一个布尔类型的变量控制while循环,当变量变为false时,线程会在完成当前循环后自然结束。建议使用wait()确保线程安全退出。
最低0.47元/天 解锁文章
900

被折叠的 条评论
为什么被折叠?



