Стоит ли отключать 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д