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

哈尔滨建站怎么做宝塔wordpress ssl证书

哈尔滨建站怎么做,宝塔wordpress ssl证书,谷歌外链工具,帮人推广的平台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.yayakq.cn/news/138500/

相关文章:

  • 建设网站需要申请报告秦皇岛网站制作电话
  • 中学网站系统源码找个做网站的 优帮云
  • 大气娱乐搞笑网站源码住房公积金服务
  • 云南网站制作报价图书馆门户网站建设方案
  • 旅游网站网页设计方案seo系统培训课程
  • 分销系统网站外包小程序开发注意事项
  • 企业自建网站 备案青岛开发区网站建设多少钱
  • 网上书店网站建设的说明书jsp做的网站如何查看
  • 网页设计网站题目做建材上哪个网站比较好
  • 网站制作大概多少钱宣化网站制作公司
  • 关于外贸公司的网站甘肃省建设厅执业资格注册中心网站
  • 大连福佳新城2026年建站吗公司简介模板怎么做
  • 北京国互网网站建设报价平面设计线上兼职
  • 网站正在建设中 英语翻译加油站项目建设背景
  • 子网站 两微一端的建设方案android开发入门教程
  • 自己建网站卖鞋美食网站需求分析
  • 河北提供网站建设公司电话高端手机网站建设需要多少钱
  • 微企点做网站怎么样学网站建设需要几年
  • 湖北省建设安全管理站网站国内免费做网页工具
  • 查找邮箱注册过的网站营销网站建设多钱
  • 网站建设课程内容软件开发文档的重要性
  • 东莞网站建设设商城网站建设适合于哪类企业
  • 手机网站开发工具6百度推广非企代理
  • 只做女性的网站广东加盟网站建设
  • 可以接单做网站的软件梦幻西游网页版最新版本
  • 电子商务网站建设精品课程wordpress实现新闻列表
  • 可以做淘宝推广的网站wordpress 图片分享
  • 公司网站建设排名教学网站建设目的
  • 二手手表网站站长工具ping
  • 完成网站建设怎么上网做网站