Тик таймера силы (включая асинхронное поведение) - PullRequest
1 голос
/ 06 мая 2010

В моем приложении есть таймер, который проверяет обновления конфигурации с сервера с интервалами в несколько минут.

Поиск конфигурации довольно трудоемкий процесс, поэтому я хочу вызвать событие «Tick» таймера, но я не могу просто вызвать timer_tick (bla, bla, bla), потому что он будет выполняться синхронно.

Есть ли простой способ заставить таймер «тикать» (без создания нового потока)? Поведение должно «сбрасывать» оставшееся время таймера (поэтому, если изначально таймер был установлен с интервалом в 2 минуты и уже прошла 1 минута - после нажатия «Tick» - таймер снова начнет считать 2 минуты)

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

изменить значение времени ожидания.

0 голосов
/ 06 мая 2010

В вашем потребляющем процессе ваш первый шаг - просто отключить таймер, а последний шаг - включить его снова.

Может быть, вы просто включили эту функцию отключения до и после вызова вашего долго работающего процесса, например:

timer.Enabled = false;
LongRunningSyncProcess();
timer.Enabled = true;
...