Стоит ли отключать Timer при длительном выполнении? - C#
Формулировка задачи:
Есть служба, которая отрабатывает раз в минуту.
ServiceDo.ClientExport(); - при больших количествах, функция может выполняться больше минуты.
Что бы функция не дублировалась, каждую минуту - следует ли отключать таймер на время выполнения этой функции?
Или можно сделать, как-то по другому?
Листинг программы
- private void DoSomething()
- {
- timer1 = new System.Timers.Timer();
- timer1.Enabled = true;
- timer1.Interval = 60 * 1000;
- timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
- timer1.AutoReset = true;
- timer1.Start();
- }
- private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
- {
- timer1.Enabled = false;
- //ServiceDo.ClientExport(); //выгрузка клиентов
- timer1.Enabled = true;
- }
Решение задачи: «Стоит ли отключать Timer при длительном выполнении?»
textual
Листинг программы
- private void DoSomething()
- {
- timer1 = new System.Timers.Timer();
- timer1.Enabled = true;
- timer1.Interval = 60 * 1000;
- timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed);
- timer1.AutoReset = false; // Будем продлевать таймер самостоятельно
- timer1.Start();
- }
- private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
- {
- try
- {
- //ServiceDo.ClientExport(); //выгрузка клиентов
- }
- finally
- {
- // Снова запускаем таймер
- ((System.Timers.Timer)sender).Start();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д