2015-12-31 1 views
0

При программировании таймерами Qt мы можем определять таймеры по всему миру и позволять одному слоту выполнять все другие операции, связанные с таймером (например, обратные вызовы); мы также можем определить таймеры для каждого связанного класса локально.определить qtimer глобальный или локальный? и плюсы и минусы?

Итак, что за плюсы и минусы?

+0

Это больше похоже на то, что вам нужно, и как вы хотите его проектировать. Вы можете использовать любой подход, который соответствует вашим текущим требованиям. – PRIME

+0

Определенно да, и именно поэтому я хочу найти плюсы и минусы. как эффективность или что-то еще. – Morris

ответ

0

Преимущество использования глобального QTimer заключается в том, что он будет вызывать все подключенные слоты в строке. Через некоторое время несколько QTimers могут закончиться десинхронизацией, и они могут таймаутировать асинхронно, даже если они были запущены синхронно с тем же интервалом. См Is QTimer smart enough to resynchronize itself

загрузка процессора также может сделать один QTimer таймаут слишком поздно, поэтому если у вас есть много должны быть синхронными, они могут таймаут асинхронно, если загружена система, имея один QTimer мог избежать этого (когда он таймаута, все подключенные слоты будут выпущены подряд, без прерывания).

Теперь очевидным преимуществом наличия нескольких QTimers является то, что они могут быть настроены с различными интервалами времени ожидания. И они также могут быть инкапсулированы в многократно используемые автономные модули или классы (было бы сложнее повторно использовать модули или классы в другом проекте, если у них нет их собственных QTimer и попросить разработчика объявить и установить глобальный, но одноэлементный шаблон может помочь с этим).

Смежные вопросы