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

基于Qt 多线程(继承自QThread篇)

# 简介

    我们写的一个应用程序,应用程序跑起来后一般情况下只有一个线程,但是可能也有特殊情况。比如我们前面章节写的例程都跑起来后只有一个线程,就是程序的主线程。线程内的操作都是顺序执行的。恩,顺序执行?试着想一下,我们的程序顺序执行,假设我们的用户界面点击有某个操作是比较耗时的。您会发现界面点击完了,点击界面对应的操作还没有完成,所以就会冻结界面,不能响应,直到操作完成后,才返回到正常的界面里。如果我们的界面是这么设计的话,估计用户得发毛了。

    这种情况我们一般是创建一个单独的线程来执行这个比较耗时的操作。比如我们使用摄像头拍照保存照片。恩,很多朋友问,这个不算耗时吧。对的在电脑上使用 Qt 拍照,处理起来非常快。根本也不需要开启一个线程来做这种事。但是我们是否考虑在嵌入式的 CPU 上做这种事情呢?嵌入式的 CPU 大多数都没有电脑里的 CPU 主频(几 GHz)那么高,处理速度也不快。此时我们就需要考虑开多一个线程来拍照了。拍完照再与主线程(主线程即程序原来的线程)处理好照片的数据,就完成了一个多线程的应用程序了。

    官方文档里说,QThread 类提供了一种独立于平台的方法来管理线程。QThread 对象在程序中管理一个控制线程。QThreads 在 run()中开始执行。默认情况下,run()通过调用 exec()来启动事件循环,并在线程中运行 Qt 事件循环。您可以通过使用 QOb

http://www.lryc.cn/news/228217.html

相关文章:

  • oled显示器程序(IIC)从stm32f103移植到stm32f429出现bug不显示-解决移植失败问题
  • 【论文阅读】FreeMatch: Self-adaptive Thresholding for Semi-supervised Learning
  • 工业网关贴牌厂家有哪些?工业网关OEM厂家怎么选?
  • NetSuite 固定资产报表自定义原理及应用
  • 【复杂网络建模】——基于关联矩阵构建超图网络
  • 学习c#的第八天
  • 我心目中的分布式操作系统
  • 新型的铁塔基站“能源管家”
  • 数字孪生智慧园区:大数据驱动下的运营管理革新
  • sqli-labs关卡12(基于post提交的双引号闭合的字符型注入)通关思路
  • 开放领域问答机器人2——开发流程和方案
  • pandas 常用45个操作方法(详解)
  • PHP判断扫码支付扫码条码支付宝微信区分
  • 一文了解芯片测试项目和检测方法 -纳米软件
  • 【npm 错误】:npm ERR! code ERESOLVE、npm ERR! ERESOLVE could not resolve问题
  • 【FastCAE源码阅读8】调用gmsh生成网格
  • 使用LLM-Tuning实现百川和清华ChatGLM的Lora微调
  • 浏览器标签页之间的通信
  • Semantic Kernel 学习笔记1
  • 图像二值化阈值调整——Triangle算法,Maxentropy方法
  • 监控视频片段合并完整视频|FFmpeg将多个视频片段拼接完整视频|PHP自动批量拼接合并视频
  • client-go controller-runtime kubebuilder
  • 【vue 如何解决响应式丢失】
  • Selenium alert 弹窗处理!
  • 有关自动化的脚本思考 python 按键 javascript
  • CKA认证模块②-K8S企业运维和落地实战-2
  • SpectralDiff论文阅读笔记
  • selenium基本使用、无头浏览器(chrome、FireFox)、搜索标签
  • Html 引入element UI + vue3 报错Failed to resolve component: el-button
  • sen2cor安装