*多线程学习记录
**----使用方法1
1、继承QT自带线程类QThread,重写该线程类;
2、重写run()方法;
#pragma once
#include <QObject>
#include <QThread>
class MyThread : public QThread
{
Q_OBJECT
public:
MyThread(QObject *parent = nullptr);
~MyThread();
protected:
//重写父类run函数
void run();
};
#include "MyThread.h"
MyThread::MyThread(QObject *parent)
: QThread(parent)
{
}
MyThread::~MyThread()
{
}
void MyThread::run()
{
while (true)
{
//TODO:需要在线程里处理的相关操作
//自己使用时会加个线程睡眠,防止空跑
QThread::usleep(100);
}
}
3、在主线程new一个子线程;
4、启动子线程调用,start()方法。
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_TestDemo.h"
#include "MyThread.h"
class TestDemo : public QMainWindow
{
Q_OBJECT
public:
TestDemo(QWidget *parent = Q_NULLPTR);
public:
MyThread* m_pMyThread = nullptr;
private:
Ui::TestDemoClass ui;
};
#include "TestDemo.h"
TestDemo::TestDemo(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
m_pMyThread = new MyThread;
//线程启动,调用start()方法
m_pMyThread->start();
}