news 2026/6/19 9:29:15

QCoreApplication::processEvents好用但不能瞎用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QCoreApplication::processEvents好用但不能瞎用

1、为了解决界面卡死的问题,大量使用

2、主线程下定时器中或者执行长时间任务的循环体中,增加之后,界面流畅很多;

无意识的滥用

没有了解QCoreApplication::processEvents本质功能和作用,在子线程中使用,没感觉有异常;

后来大量使用,发现程序很不稳定,期初怀疑读写串口不稳定,设备驱动不稳定等等

通过AI查阅资料之后,发现子线程函数中不能使用,各种异常无法分析和定位;

有一次断点调试的时候,原本应该执行的代码,突然不执行了,才真正的意识到,问题的严重性,删除就好了,原来卡顿的问题根源不是没有调用这个方法,而是程序处理有问题;

其中定时任务和消息堆叠的问题,豆包会给很经典的方法解决,当任务没有完成时候,多余的消息就会丢弃,防止消息堆叠,出现问题;

其中全自动卡卡仪,步进电机都在子线程中完成调用设备的控制,在等待的循环中,大量使用,出现了信号不稳,读写错误,甚至失败很高,经过删除之后,读取的数据失败很少了,测试也稳定了很多。

5、硬性整改规则(工控设备必遵守)

  1. 所有 moveToThread 后的子线程定时函数,删除任意形式 QCoreApplication::processEvents,不管加什么过滤参数;
  2. 锁临界区内严禁任何 processEvents,主线程子线程都不行;
  3. EtherCAT/SOEM 运动控制循环内,不能手动刷新事件,依赖线程 exec 保证周期稳定;
  4. UI 界面刷新全部通过emit信号抛给主线程,子线程只做硬件读写。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 9:29:05

告别“失眠”,推荐这几碗汤水,静心养神、补虚降火

很多人被失眠困扰:睡前思绪繁杂、入睡困难,或是睡眠浅、多梦易醒、晨起疲惫。长期失眠会耗损气血、打乱脏腑平衡,让身体陷入亚健康状态。中医认为,失眠多源于心神不宁、气血亏虚、心绪烦躁,相较于外力干预,…

作者头像 李华
网站建设 2026/6/19 9:04:57

TC368x电荷泵芯片:高效生成负电源的原理、选型与PCB布局实战

1. 项目概述:从“负压”需求说起在电路设计的日常里,我们常常会遇到一个看似简单却让人头疼的需求:如何从一个正电源(比如5V或12V)高效、稳定地得到一个负电源(比如-5V或-12V)?这个需…

作者头像 李华
网站建设 2026/6/19 9:01:00

157、模组 FPC 设计:MIPI 高速信号的柔性电路板布线规则

157、模组 FPC 设计:MIPI 高速信号的柔性电路板布线规则 从一次诡异的“雪花屏”说起 去年做一款48M主摄模组,FPC打样回来上电,预览画面在特定角度下出现周期性横纹,像老电视的雪花屏。示波器抓MIPI D-PHY的差分对,眼图张开度只有70%,抖动明显超标。排查了三天,最后发现…

作者头像 李华
网站建设 2026/6/19 8:55:08

LangGraph重试机制深度解析:构建高可用AI工作流的终极指南

LangGraph重试机制深度解析:构建高可用AI工作流的终极指南 【免费下载链接】langgraph Build resilient agents. 项目地址: https://gitcode.com/GitHub_Trending/la/langgraph 在当今AI应用开发中,网络波动、API限制和资源竞争已成为常态。LangG…

作者头像 李华
网站建设 2026/6/19 8:44:08

嵌入式GUI开发:emWin中CHECKBOX与DROPDOWN控件的深度解析与实践

1. 项目概述在嵌入式GUI开发里,控件是构建人机交互界面的基石。无论是工业HMI、智能家居面板还是车载中控,用户与设备的交互都离不开按钮、复选框、下拉框这些基础元素。今天,咱们就深入聊聊emWin图形库中两个高频使用的交互控件:…

作者头像 李华
网站建设 2026/6/19 8:40:22

JetBrains IDE试用期重置终极指南:3种方法免费解锁专业开发工具

JetBrains IDE试用期重置终极指南:3种方法免费解锁专业开发工具 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾因JetBrains IDE试用期结束而中断开发工作?ide-eval-resetter正是解…

作者头像 李华