Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.104.120] |
|
Сообщ.
#1
,
|
|
|
Пусть наступило timeout - и тело таймера работало 1000мс. Значит, следующий запуск относительно первого произойдет через 1100мс? Или запустится 10 копий таймера с четким интервалом 100мс?
|
Сообщ.
#2
,
|
|
|
Цитата Сергей85 @ Или запустится 10 копий таймера с четким интервалом 100мс? |
Сообщ.
#3
,
|
|
|
Сережа жжот
|
Сообщ.
#4
,
|
|
|
Таймер у тебя запускает какую-то функцию, если у тебя в этой функции каждый раз создаются объекты и не уничтожаются, они и будут
|
Сообщ.
#5
,
|
|
|
Цитата Сергей85 @ тело таймера работало 1000мс. Значит, следующий запуск относительно первого произойдет через 1100мс? Или запустится 10 копий таймера с четким интервалом 100мс? Видимо, в переводе на русский вопрос звучит примерно так: если время обработки события таймера превышает его интервал, то будут ли пропущенные события накапливаться в очереди и затем вызываться\срабатывать друг за другом, или же пропущенные события теряются и срабатывает только последнее событие после обработки предыдущего? Не знаю как насчет кроссплатформенности, но в винде QTimer по всей видимости работает через обычный SetTimer и сообщения WM_TIMER, которые в очереди не копятся, т.е. пропущенные события теряются и вызывается обработка только последнего события. PS: НО, поскольку дискрет отсчета времени в винде м.б. не кратен задержке в 1000 мс, то следующее срабатывание может произойти не ровно через 1100 мс после первого, а в интервале от 1000+x до 1100+x, где x - дискрет таймера |
Сообщ.
#6
,
|
|
|
о как ваще стало ясно
|
Сообщ.
#7
,
|
|
|
вообще ТСу совет - почитать хоть какую книгу по основам кутэ. да хоть того же Шлее или Бланшета. а то чем дальше, тем глупее вопросы
и начать уже хоть по минимуму читать документацию! All timer types may time out later than expected if the system is busy or unable to provide the requested accuracy. In such a case of timeout overrun, Qt will emit activated() only once, even if multiple timeouts have expired, and then will resume the original interval. |