Вы должны использовать события кадра в любое время, когда хотите выполнить обработку, которая в конечном итоге влияет на то, что отображается на экране.Если вы перемещаете изображения, изменяете размер визуального содержимого, делаете программную анимацию или что-то в этом роде, вам следует использовать события кадра.Причины, по которым это может быть довольно сложным, но на простейшем уровне сводятся к следующему: если вы выполняете такую обработку более одного раза между обновлениями экрана, вы теряете производительность без причины, и если вы делаете это реже, выполучить изменчивые визуальные эффекты.Использование таймера для выполнения действий с той же скоростью, что и частота кадров, может показаться альтернативой, но вы потратите определенное количество времени не синхронизировано.То есть, даже если ваш контент составляет 25FPS и вы запускаете таймер с задержкой 40 мс, из-за небольших колебаний времени, иногда это событие таймера срабатывает дважды между перерисовками, а иногда пропускается.Это могло бы стоить того, если бы было какое-то огромное неотъемлемое преимущество использования Timer, но это не так.
С другой стороны, каждый раз, когда вы хотите сделать что-то, что происходит намного реже, чем обновления экрана,Таймер хороший вариант.Проще сделать событие таймера, которое срабатывает через 5 секунд, чем создать слушатель фрейма, который насчитывает до 200. (Но будьте осторожны при смешивании событий кадра и таймеров вместе - см. здесь .)
В заключение несколько слов о производительности: не имеет значения, какую вы используете.Или, скорее, любая разница будет незначительной по сравнению с рендерингом и тем, что вы делаете внутри фрейма или событий таймера.Что может иметь небольшое значение, так это минимизировать издержки - если вы делаете много разных вещей в каждом кадре, используете один прослушиватель событий и заставляете его вызывать все функции, которые должны запускаться, вместо использования большого количества слушателей.И то же самое касается таймеров.Но даже это, на самом деле, вряд ли ухудшит вашу производительность, если вы не используете много сотен слушателей.Вы всегда должны начинать любым простым способом, а потом беспокоиться о производительности, если тестирование показывает, что у вас есть узкое место.