深圳正规网站制作哪里好,个人网页主页模板,主流的外贸平台,网页升级未成年人自觉离开//qt创建线程的几种方法
//在Qt中#xff0c;创建线程的主要方法有以下几种#xff1a;
//1.继承QThread类重写run方法
class MyThread : public QThread
{
Q_OBJECT
public:
void run() override
{
// 在这里执行你的代码
}
};
// 使用
MyThread *myThread n…//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中创建线程的几种方法可以根据实际需求选择合适的方法。