使用Qt定时器编程时,我们可以全局定义定时器,并让一个槽来执行所有其他与定时器相关的操作(如回调);我们还可以在本地为每个相关类定义计时器。
那么,有什么优点和缺点?
答案 0 :(得分:0)
使用全局QTimer
的优点是它将触发连续的所有连接的插槽。一段时间后,多个QTimers可能最终失去同步,即使它们以相同的间隔同步启动,它们也可以异步超时。见Is QTimer smart enough to resynchronize itself
CPU负载也可能使一个QTimer
超时太晚,所以如果你有许多应该是同步的,那么如果加载系统,它们可以异步超时,只有一个QTimer
可以避免(一次)超时时,所有连接的插槽将连续触发而不会中断。)
现在,拥有多个QTimers的明显优势在于它们可以配置不同的超时间隔。它们也可以封装在可重用的独立模块或类中(如果他们没有自己的QTimer
并且请求开发人员声明并设置全局模块或类,则更难以重用其他项目中的模块或类但是,单身模式可以帮助解决这个问题。