定义 Qtimer 全局还是本地?以及利弊

define qtimer global or local? and the pros and cons?

本文关键字:Qtimer 全局 定义      更新时间:2023-10-16

当使用Qt定时器编程时,我们可以全局定义定时器,并让一个时隙执行所有其他与定时器相关的操作(如回调(;我们还可以在本地为每个相关类定义定时器。

那么,有什么优点和缺点呢?

使用全局QTimer的优点是它将连续触发所有连接的插槽。一段时间后,多个 QTimer 最终可能会不同步,即使它们以相同的间隔同步启动,它们也可能异步超时。请参阅 QTimer 是否足够智能,可以重新同步自身

CPU 负载也可能使一个QTimer超时太晚,所以如果你有很多应该是同步的,如果系统加载,它们可能会异步超时,有一个QTimer可以避免这种情况(一旦超时,所有连接的插槽将被连续触发而不会中断(。

现在,拥有多个 QTimer 的明显优势是它们可以配置不同的超时间隔。它们也可以封装在可重用的独立模块或类中(如果它们没有自己的QTimer并请求开发人员声明和设置全局模块或类,则很难在另一个项目中重用模块或类,但是,单例模式可以帮助解决这个问题(。