QT 创建线程的几种方法

//qt创建线程的几种方法

//在Qt中,创建线程的主要方法有以下几种:

//1.继承QThread类重写run方法

class MyThread : public QThread

{

Q_OBJECT

public:

void run() override

{

// 在这里执行你的代码

}

};

// 使用

MyThread *myThread = new MyThread(this);

myThread->start();

//2.使用Qt的QRunnable类

class MyRunnable : public QRunnable

{

public:

void run() override

{

// 在这里执行你的代码

}

};

// 使用

MyRunnable *myRunnable = new MyRunnable();

QThreadPool::globalInstance()->start(myRunnable);

//3.使用Qt的QThread的moveToThread方法

class Worker : public QObject

{

Q_OBJECT

public slots:

void doWork(const QString &parameter)

{

// 在这里执行你的代码

}

};

class Controller : public QObject

{

Q_OBJECT

QThread workerThread;

public:

Controller()

{

Worker *worker = new Worker;

workerThread.start();

worker->moveToThread(&workerThread);

connect(this, &Controller::operate, worker, &Worker::doWork);

connect(&workerThread, &QThread::finished, worker, &QObject::deleteLater);

}

signals:

void operate(const QString &parameter);

};

// 使用

Controller *controller = new Controller();

controller->operate("parameter");

//4.使用Qt的QRunnable和QThreadPool

class Worker : public QObject

{

Q_OBJECT

public:

void doWork(const QString &parameter)

{

// 在这里执行你的代码

}

};

// 使用

Worker *worker = new Worker();

QRunnable *runnable = new QRunnable([worker]()

{

worker->doWork("parameter");

});

QThreadPool::globalInstance()->start(runnable);

5.Qt 之 Concurrent,这里不描述,以后再说。

以上就是在Qt中创建线程的几种方法,可以根据实际需求选择合适的方法。

相关推荐

  1. QT 创建线方法

    2024-04-07 13:46:03       30 阅读
  2. qt创建线方法

    2024-04-07 13:46:03       14 阅读
  3. 创建线方式,及线生命周期?

    2024-04-07 13:46:03       14 阅读
  4. C++多线方法

    2024-04-07 13:46:03       7 阅读
  5. c++ 线状态

    2024-04-07 13:46:03       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 13:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 13:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 13:46:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 13:46:03       20 阅读

热门阅读

  1. MySQL中的sql优化

    2024-04-07 13:46:03       20 阅读
  2. nginx配置多个服务

    2024-04-07 13:46:03       55 阅读
  3. MySQL 行锁和表锁是什么?区别,作用等学习总结

    2024-04-07 13:46:03       21 阅读
  4. TouchableOpacity和TouchableWithoutFeedback区别

    2024-04-07 13:46:03       17 阅读
  5. 口语 4.7

    2024-04-07 13:46:03       11 阅读
  6. 贪心算法

    2024-04-07 13:46:03       11 阅读