烧脑问题QtC++在⼦线程执⾏函数的两种⽅法
前⾔:
很多时候,我们的某个函数⾮常耗时,会造成系统卡顿,但这个函数⼜不会经常调⽤,如果另外建⽴⼀个线程类,⼜得去维护,得不偿失,这个时候,我们就希望在⼦线程执⾏该函数,执⾏完⾃动释放。 这⾥介绍两个⽅法:
1、使⽤QtConcurrent门神的由来
玉米面糊QtConcurrent 是命名空间 (namespace),它提供了⾼层次的函数接⼝ (APIs),使所写程序,可根据计算机的 CPU 核数,⾃动调整运⾏的线程数⽬。小区规划
1.1、 函数原型
QFuture<T> QtConcurrent::run(QThreadPool::globalInstance(), function, ...) ;
QFuture<T> QtConcurrent::run(QThreadPool *pool, Function function, ...);
1.2、使⽤准备
礼花211院校名单
使⽤QtConcurrent需要在.pro⽂件增加 QT += concurrent
如果是使⽤VS+Qt,则需要增加模块Concurrent
1.3、实例
#include <QString>
倾听的意思#include <QDebug>
干邻居#include <QThread>
#include <QApplication>
#include "qtconcurrentrun.h"
using namespace QtConcur