Кто-нибудь знает, как System.Windows.Forms.Timer влияет на хост-приложение и систему в целом?

Кто-нибудь знает, как System.Windows.Forms.Timer влияет на хост-приложение и систему в целом?

Многопоточный фоновый цикл, с одной стороны, имеет очень высокий процент использования ЦП, в то время как Timer с очень высокой частотой тиков не показывает никакого эффекта в диспетчере задач Windows.

Загромождает ли таймер с высокой тактовой частотой цикл сообщений Windows, или?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
1 524
2

Ответы 2

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

Я считаю, что эта статья Сравнение таймеров от Microsoft также полезна при сравнении подобных вещей.

Но в целом они не слишком загромождены.

Определите "таймер высокой скорости тика" :).

Проблема с компонентами таймера, использующими WM_TIMER (такими как Windows.Forms), многообразна:

  • Вы всегда сможете получить разрешение нет лучше, чем 50 мсек.
  • Если ваша система находится под нагрузкой (например, интенсивная перерисовка, работа по ссылкам RDP и т. д.), Вы можете получать сообщения WM_TIMER каждые 500 мс или более, независимо от того, насколько мал вы установили интервал.
  • Сообщения WM_TIMER являются синтетическими сообщениями и могут вообще не доставляться в ваше приложение в течение продолжительных периодов времени, если ваша очередь сообщений переполнена другими сообщениями.
  • Если для выполнения вашего метода таймера требуется больше одного интервала таймера, таймер «пропустит» сообщение, т.е. вы не получите еще одно сообщение WM_TIMER, пока не вернетесь из первого. Другими словами, вы никогда не получите два сообщения WM_TIMER одно за другим последовательно.

Другие вопросы по теме