定义 Qtimer 全局还是本地?以及利弊
define qtimer global or local? and the pros and cons?
当使用Qt定时器编程时,我们可以全局定义定时器,并让一个时隙执行所有其他与定时器相关的操作(如回调(;我们还可以在本地为每个相关类定义定时器。
那么,有什么优点和缺点呢?
使用全局QTimer
的优点是它将连续触发所有连接的插槽。一段时间后,多个 QTimer 最终可能会不同步,即使它们以相同的间隔同步启动,它们也可能异步超时。请参阅 QTimer 是否足够智能,可以重新同步自身
CPU 负载也可能使一个QTimer
超时太晚,所以如果你有很多应该是同步的,如果系统加载,它们可能会异步超时,有一个QTimer
可以避免这种情况(一旦超时,所有连接的插槽将被连续触发而不会中断(。
现在,拥有多个 QTimer 的明显优势是它们可以配置不同的超时间隔。它们也可以封装在可重用的独立模块或类中(如果它们没有自己的QTimer
并请求开发人员声明和设置全局模块或类,则很难在另一个项目中重用模块或类,但是,单例模式可以帮助解决这个问题(。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 当vector是tje全局变量时,c++中vector的内存管理
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 如何创建一个空的全局类并在启动时实例化它
- 内联函数中具有内部链接的全局变量
- 为什么虚函数不能是静态的和全局的?
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 全局作用域中函数指针的赋值
- g++用户定义的动态链接库上的全局new和delete运算符
- 在命名空间中使用全局命名空间中的函数
- 全局变量 多读取器 一个写入器多线程安全?
- 类的全局对象和静态成员
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 不同作用域中的静态变量和全局变量
- 如何使用 llvm-10 库在C++定义 LLVM 全局值变量?
- 使用全局声明的向量时,C++双重释放错误/损坏
- 将线程中的数据存储到全局容器的最佳方法?
- 定义 Qtimer 全局还是本地?以及利弊