当前位置: 首页 > news >正文

dede网站名称更改不了网络营销网站建设案例

dede网站名称更改不了,网络营销网站建设案例,家居网站建设公司,正规网站建设服务Qt中的异步相关类 今天在学习别人的项目时,看到别人包含了QFuture类,我没有见过,于是记录一下。 直接在AI助手中搜索QFuture,得到的时Qt中异步相关的类。于是直接查询一下Qt异步中相关的类。 在Qt中,异步编程是一个重要的概念&…

Qt中的异步相关类

今天在学习别人的项目时,看到别人包含了QFuture类,我没有见过,于是记录一下。

直接在AI助手中搜索QFuture,得到的时Qt中异步相关的类。于是直接查询一下Qt异步中相关的类。

在Qt中,异步编程是一个重要的概念,它允许开发者在不阻塞主线程的情况下执行耗时的任务。

  1. Qt Concurrent
    • 提供了并行处理迭代容器的map、filter和reduce算法,类似于函数式编程中的概念。
    • 包括QFutureQFutureWatcherQFutureSynchronizer等类,用于访问和监控异步计算的结果。
  2. QFuture
    • 表示一个异步操作的结果,可以附加继续操作(continuations)。
    • 通过QFuture::then()方法,可以在一个异步操作完成后继续执行另一个操作。
    • 支持错误处理,通过QFuture::onFailed()方法可以为特定错误类型附加错误处理程序。
  3. QFutureWatcher
    • 用于监控QFuture对象的状态,如完成、失败或取消。
    • QFuture的状态发生变化时,QFutureWatcher可以发出信号。
  4. QThreadPool
    • 用于管理线程池,可以提交任务到线程池中异步执行。
  5. Qt::runFunction
    • 一个模板函数,用于在后台线程中异步执行函数,并返回一个QFuture对象。
  6. Qt::connect
    • 可以与QFuture一起使用,将信号连接到槽上,以便在异步操作完成时执行槽函数。
  7. qt-async
    • 一个第三方库,提供了异步值(async values)和异步小部件(async widgets),用于异步操作的结果、错误和进度的表示。
  8. QtAsyncSql
    • 一个第三方库,提供了异步和线程化的SQL查询支持。
    • 包括AsyncQuery类,用于执行异步SQL查询。
    • 提供了ConnectionManager类,用于维护数据库连接。
  9. QtAsyncRunner
    • 一个抽象接口,用于启动异步函数,允许在Qt应用程序中轻松地将计算密集型函数提交到线程中执行。

1.使用QFutureQFutureWatcher进行异步操作

#include <QCoreApplication>
#include<QFuture>
#include<QFutureWatcher>
#include<QtConcurrent/QtConcurrentRun>
#include<QDebug>void AsyncTask(int nNumber)
{QThread::sleep(2); // 模拟耗时操作qDebug() << "Task Complete With Number:" << nNumber;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);// 使用QtConcurrent::run将函数提交到线程池QFuture<void> future = QtConcurrent::run(AsyncTask,42);// 创建一个QFutureWatcher来监控任务QFutureWatcher<void> watcher;QObject::connect(&watcher,&QFutureWatcher<void>::finished,&a,&QCoreApplication::quit);// 将watcher与future关联watcher.setFuture(future);QtConcurrent::run(AsyncTask,42);return a.exec();
}
  1. 使用QThreadPoolQt::runFunction进行异步操作

    #include <QCoreApplication>
    #include <QThreadPool>
    #include <QtConcurrent/QtConcurrentRun>
    #include <QDebug>void myFunction() {qDebug() << "Function is running in a separate thread.";
    }int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 将函数提交到线程池QtConcurrent::run(&myFunction);// 启动事件循环,等待异步任务完成return a.exec();
    }
    

3. 使用QFuture链式调用(Continuations)

#include <QCoreApplication>
#include <QFuture>
#include <QtConcurrent/QtConcurrentRun>
#include <QDebug>QString processResult(int number) {return QString("Processed %1").arg(number);
}int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);// 异步执行任务并获取结果QFuture<int> future = QtConcurrent::run([]() -> int {QThread::sleep(2); // 模拟耗时操作return 42;});// 使用then()方法添加一个continuationQFuture<QString> processedFuture = future.then(&processResult);// 等待处理结果QString result = processedFuture.result();qDebug() << result;// 启动事件循环,等待异步任务完成return a.exec();
}

上述程序在同一程序运行结果:
在这里插入图片描述

好了,相关介绍就到这里。

http://www.dinnco.com/news/25212.html

相关文章:

  • 做英语翻译赚钱的网站和业务多一样的平台
  • 砀山网站建设张北网站seo
  • 网站做微信链接宁波seo外包平台
  • 提高景区网站建设教育培训机构推荐
  • 休闲文化网站深圳网络推广培训中心
  • 成都新津网站建设google推广 的效果
  • 个人做网站用什么技术品牌网络营销成功案例
  • 网站怎样做推广计划百度推广电话销售好做吗
  • 夏津网站开发搜索引擎营销的手段包括
  • 东莞网站建设企业搜索引擎营销的特点
  • 武汉做网站冰洁找到冰洁工作室杭州互联网公司排名榜
  • 有名的互联网公司免费关键词优化排名软件
  • 孝感做网站有哪些免费网站可以发布广告
  • 遵义市汇川区建设厅网站深圳关键词优化怎么样
  • 长锦船公司网站新的数据新闻
  • 四大门户网站是哪些seo深圳培训班
  • 柳州网站建设服务石家庄关键词排名首页
  • 郑州广告公司网站建设百度普通版下载
  • wordpress z合肥网站seo公司
  • 网站建设域名怎么选择重庆网站seo推广公司
  • 美容院装修seo排名优化技术
  • 武汉光谷做网站多少钱网站自然优化
  • 网站怎么做才吸引人今日头条普通版
  • 批发购物网站建设谷歌搜索广告优化
  • 旅游网站如何做西安计算机培训机构哪个最好
  • 长沙微网站电话号码武汉seo网站管理
  • 网站建设资讯版块如何做用户运营百度自己的宣传广告
  • 最火网站排名北京网站快速优化排名
  • 苍南规划建设局网站seo推广费用需要多少
  • 广州专业网站改版领军企业收录之家