QFutureWatcher获取QtConcurrent::run线程函数的返回值
mythread.h
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include<QRunnable>
#include<QDebug>
#include<QFuture>
#include<QFutureWatcher>
#include<QtConcurrent/QtConcurrent>
#include<QThread>
class myThread :public QThread,QRunnable
{
public:
myThread();
void run() override;
int test(int c, int b);
void testFuture();
};
#endif // MYTHREAD_H
mythread.cpp
#include "mythread.h"
#include<QDebug>
#include<QThread>
#include<QApplication>
myThread::myThread()
{
qDebug()<<"myThread cons"<<QThread::currentThreadId();
}
void myThread::run()
{
qDebug()<<QThread::currentThreadId()<<"runing ";
}
int myThread::test(int c, int b)
{
qDebug()<<QThread::currentThreadId()<<"runing";
qDebug()<<"c = "<<c;

该博客介绍了如何在Qt环境中利用QFutureWatcher类来监视并获取QtConcurrent::run执行的线程函数的返回值。通过创建QFuture和QFutureWatcher对象,连接信号和槽,实现了在主线程中等待并显示线程函数计算的结果。
最低0.47元/天 解锁文章
658





