NSTimer не работает хорошо, если временной интервал меньше 0,5 секунд, цель c - PullRequest
0 голосов
/ 20 февраля 2012

NSTimer не работает должным образом или не может вызвать нужный метод вовремя, если временной интервал меньше 0,5 секунды или в ненулевых секундах, поэтому я просто хочу знать, есть ли альтернатива NSTimer, которая может работать для временного интервала меньше, чем0,5 секунды?

Заранее спасибо

1 Ответ

3 голосов
/ 20 февраля 2012

Прежде всего, точность намного лучше, чем полсекунды. Мои тесты дают хорошие результаты даже при 100 мс.

Проблема не в задержке срабатывания, а в задержке: по сути, таймеры опрашиваются с определенным интервалом, и если задержка близка к этому интервалу, вы можете столкнуться с проблемами. Например, предположим, что таймеры проверяются каждые 30 мс, и что у вас есть таймер, запланированный на 31 мс. 30 мс спустя, это все еще не связано, поэтому оно не срабатывает; однако следующая проверка будет сделана через 30 мс, и, таким образом, ваш таймер будет срабатывать через 60 мс после его запуска вместо 31.

Если вам действительно нужно лучше, вы можете использовать таймеры Grand Central Dispatch. Однако вы можете получить неоптимальные результаты, если отправляете в основную очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...