QThread中的一些理解
发布日期:2021-11-15 14:57:55
浏览次数:29
分类:技术文章
本文共 1355 字,大约阅读时间需要 4 分钟。
在子类化线程中,因为线程的依赖性会导致所有除run中运行的函数都会在主线程中运行,如果我们想让这个子类中的所有函数都在子类中运行的话就要改变它的依赖性
class QPlayOnWallThread : public QThread{ Q_OBJECTpublic: QPlayOnWallThread(); ~QPlayOnWallThread(); void initValue(); //初始化数据 void initWallThread(); //初始化:读配置、读记录 bool wirteRecord(); //缓存记录Q_SIGNALS: void sendWallInfo(QWallInfo info); void sendStart();public Q_SLOTS: void test_slot(); void PlatPreviewOnTvwall_slot(const char * szCameraIndexCode, int iTvWallId, int iWndId); //上墙protected: virtual void run(); //根据记录上墙private:// bool readRecord(); //读缓存记录 bool readConfig(); //读配置文件private: bool errorFlag; QWallInfo m_info;};
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); test = new QPlayOnWallThread; test->moveToThread(test);//修改依赖性 test->start();}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_pushButton_clicked(){ test->PlatPreviewOnTvwall_slot("cc",1,1);}
修改依赖性后就可以使得我们创建的子类中的函数都在子线程中运行。
但是void MainWindow::on_pushButton_clicked()这个函数运行以后你会发现PlatPreviewOnTvwall_slot("cc",1,1)是在主线程中运行的,为什么呢?因为调用PlatPreviewOnTvwall_slot("cc",1,1);这句话是主线程中调用的所以运行也是主线程中运行。
我总结了一点:对于线程类来说想让其在子线程中运行,那么就不要在主程序中调用子线程类中的函数。(前提是修改了它的依赖对象,否则除了run中运行的函数都是在主线程中运行)
不修改依赖性的结果:
修改依赖性的结果:
C++交流群:585225803
转载地址:https://blog.csdn.net/qq_39742146/article/details/84344423 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月09日 19时23分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
LeetCode刷题误区以及python的ACM编程(对这段时间做公司笔试题的一个反思)
2021-06-28
什么叫做 SSL/TLS协议?
2021-06-28
你应该知道的RPC原理
2021-06-28
为什么谷歌的开发人员认为敏捷开发是无稽之谈?
2021-06-28
mysql视图的作用
2021-06-28
MySQL视图之我见
2021-06-28
饿了么MySQL异地多活的数据双向复制
2019-04-25
当中台遇上DDD,我们该如何设计微服务?
2019-04-25
如何画好软件项目架构图?
2019-04-25
饿了么交易系统 5 年演化史
2019-04-25
代码检查又一利器:ArchUnit
2019-04-25
MySQL分区与传统的分库分表
2019-04-25
Mysql分表和分区的区别、分库和分表区别
2019-04-25
腾讯Elasticsearch海量规模背后的内核优化剖析
2019-04-25
交易中台架构设计:海量并发高扩展,新业务秒级接入
2019-04-25
MongoDB、ElasticSearch、Redis、HBase比较
2019-04-25
从MySQL到HBase:分库分表方案转型的演进
2019-04-25
网易HBase实践
2019-04-25
大众点评订单系统分库分表实践
2019-04-25
腾讯:互联网金融行业HBase实践与创新
2019-04-25