Должен ли я использовать фоновые рабочие или таймеры в этой ситуации? - PullRequest
2 голосов
/ 23 января 2012

Я пишу программу, которая управляет кучей таймеров.

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

Я не хочу, чтобы графический интерфейс зависал, поэтому я не хочу иметь таймер в главном потоке формы, который замораживает все это.

Итак, отправляет ли класс Timer таймер в новом потоке или сохраняет его в основном потоке пользовательского интерфейса?

В противном случае, я должен использовать Background Worker для достижения этой цели?

Ответы [ 2 ]

7 голосов
/ 23 января 2012

Событие System.Windows.Forms.Timer выполняется в потоке пользовательского интерфейса.

Вместо этого вы можете использовать System.Threading.Timer, который выполняется в рабочем потоке.

Ref.: Сравнение классов таймеров в библиотеке классов .NET Framework

0 голосов
/ 23 января 2012

Зависит от типа таймера, который вы используете, я предлагаю прочитать эти статьи , чтобы выбрать лучшее для вас.

...