定义qtimer全球或本地?和利弊?

时间:2015-12-31 06:37:46

标签: c++ qt qtimer

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

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

1 个答案:

答案 0 :(得分:0)

使用全局QTimer的优点是它将触发连续的所有连接的插槽。一段时间后,多个QTimers可能最终失去同步,即使它们以相同的间隔同步启动,它们也可以异步超时。见Is QTimer smart enough to resynchronize itself

CPU负载也可能使一个QTimer超时太晚,所以如果你有许多应该是同步的,那么如果加载系统,它们可以异步超时,只有一个QTimer可以避免(一次)超时时,所有连接的插槽将连续触发而不会中断。)

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