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

层次结构分明的网站配色方案中国建设银行个人信息网站

层次结构分明的网站配色方案,中国建设银行个人信息网站,wordpress如何使用父导航可点击,云服务器网站解析本章介绍Qt多线程编程。 1.方法 Qt多线程编程通常有2种方法#xff1a; 1)通过继承QThread类#xff0c;实现run()方法。 2)采用QObject::moveToThread()方法。 方法2是Qt官方推荐的方法#xff0c;本文介绍第2种。 2.步骤 1)创建Worker类 这里的Worker类就是我们需要…本章介绍Qt多线程编程。 1.方法 Qt多线程编程通常有2种方法 1)通过继承QThread类实现run()方法。 2)采用QObject::moveToThread()方法。 方法2是Qt官方推荐的方法本文介绍第2种。 2.步骤 1)创建Worker类 这里的Worker类就是我们需要作复杂的数据处理的地方(doWork()函数)需要注意的是Worker类需要继承QObject类。 class Worker : public QObject {Q_OBJECT public:explicit Worker(QObject *parent nullptr);signals:void resultReady(int result);public slots:void doWork(int parameter); }; 2)实例化QThread对象和Work对象(包含耗时的数据处理) 在需要使用线程的类中实例化QThread对象和Worker对象。 workerThread new QThread(this); worker new Worker(); 3)QObject::moveToThread()方法 使用QObject::moveToThread()方法将Worker对象的事件循环全部交由QThread对象处理。 worker-moveToThread(workerThread); 4)信号槽绑定这里列出必要的信号和槽绑定包括起始信号结束信号的槽绑定。 connect(this, SIGNAL(startWork(int)), work, SLOT(doWork(int))); connect(workerThread, QThread::finished, worker, QObject::deleteLater); 这样线程使用者就可以向Worker对象发信号来执行相应的操作同样Worker对象也可以将结果发给线程使用者。 5)启动线程 workerThread-start(); 6)善后处理 当使用线程的对象销毁时需要作必要的处理。在其析构函数中添加 workerThread-quit(); workerThread-wait(); 3.实例 以Controller对象中实现多线程为例。这里为了演示在Worker线程中作加法运算来模拟耗时的数据处理。在Controller类和Worker类各定义了信号和槽来实现Worker类和Controller类之间的交互。 1)Worker类 #ifndef WORKER_H #define WORKER_H#include QObjectclass Worker : public QObject {Q_OBJECT public:explicit Worker(QObject *parent nullptr);signals:void resultReady(int result);public slots:void doWork(int parameter); };#endif // WORKER_H #include worker.h #include QThread #include QDebugWorker::Worker(QObject *parent) : QObject(parent) {}void Worker::doWork(int parameter) {int sum 0;qDebug() Thread2 ID: QThread::currentThreadId();for (int i 1; i parameter; i)sum i;emit resultReady(sum); } 2)Controller类 #ifndef CONTROLLER_H #define CONTROLLER_H#include QObject #include worker.hclass Controller : public QObject {Q_OBJECT public:explicit Controller(QObject *parent nullptr);~Controller();signals:void startWork(int parameter);public slots:void handleResult(int result);private:QThread *workerThread;Worker *worker; };#endif // CONTROLLER_H #include controller.h #include QThread #include QDebugController::Controller(QObject *parent) : QObject(parent) {workerThread new QThread(this);worker new Worker();worker-moveToThread(workerThread);connect(this, SIGNAL(startWork(int)), worker, SLOT(doWork(int)));connect(workerThread, QThread::finished, worker, QObject::deleteLater);connect(worker, SIGNAL(resultReady(int)), this, SLOT(handleResult(int)));workerThread-start(); }Controller::~Controller() {workerThread-quit();workerThread-wait(); }void Controller::handleResult(int result) {qDebug() result; } 3)主函数 #include QCoreApplication #include QDebug #include QThread #include controller.hint main(int argc, char *argv[]) {QCoreApplication a(argc, argv);qDebug() Thread1 ID: QThread::currentThreadId();Controller c;emit c.startWork(100);return a.exec(); } 4)运行结果 总结本文介绍了采用QObject::moveToThread()方法实现Qt多线程编程的方法。
http://www.pierceye.com/news/204022/

相关文章:

  • 手机静态网站建设课程设计报告形象型网站
  • 网站建设接单渠道百度网站内容
  • 企业网站pv是什么手机网站开发价格
  • 北京网站优化团队oppo开放平台
  • 购物商城外贸网站福州营销型网站建设公司
  • 白酒pc网站建设方案网站不符合个人备案性质
  • 做视频网站程序多少钱免费人体做爰网站
  • 做海外网站 服务器放哪网页设计师通常是设计两套ui吗
  • 海拉尔网站建设做html网站模板下载
  • 为什么网站找不到了东莞智通人才市场招聘官网
  • 如何注册网站名称中国煤炭建设协网站
  • 一个网站为什么做的不好看软件源码成品资源下载网站
  • 网站建设 环讯传媒建设网站要多久到账
  • 溧阳城乡建设厅网站惠州专业网站建设
  • app嵌入手机网站dw旅游网站怎么做
  • wpf做网站烟台做网站工资
  • 做网站公司名字网站建设方案对比分析报告
  • 网站360优化网站开发所需技术
  • 宁河做网站公司wordpress漏洞扫描工具
  • 单位网站建设的目的手机可以做网站服务器吗
  • 上海网站建设有限公司lnmp安装wordpress限权
  • 大航母网站建设服务php一般网站空间多大
  • 中性衣服印花图案设计网站做网站的工作
  • 只做女性的网站编程入门先学什么软件
  • 创客网站建设新余公司做网站
  • 买个网站域名多少钱网站建设 内容缺乏
  • 清河做网站哪里好建设一个网站的文案需要
  • 农机网站模版建网站用什么工作站
  • 网站可以做无形资产游戏代理0加盟费
  • 高端网站建设哪家公司好城乡建设部网站甘红刚