Таймер обслуживания с автоматическим включением False - PullRequest
1 голос
/ 30 марта 2020

Я создал Windows Службу, которая не должна автоматически включаться

Я создал таймер как таковой

private Timer timer1 = null;


timer1 = new Timer();
timer1.Interval = 6000;
timer1.Elapsed += new ElapsedEventHandler(timer1_Tick);
timer1.Enabled = true;
timer1.AutoReset = false;

Затем метод отметки таймера

private void timer1_Tick(object sender, ElapsedEventArgs e)
    {
        if (!IsServerConnected(db.Connectionstring))
        {
        //Error Handling
        timer1.Interval = 300000;
        }
        else
        {
            if (!Directory.Exists(cfg.CSVPath))
            {
                //error handling
                timer1.Interval = 300000;
            }
            else
            {
                timer1.Interval = 60000;
                //Code
            }

        }
        timer1.Start();
    }

Таймер будет срабатывать через 6 секунд, как и предполагалось, и затем попадет в секцию timer1.Interval = 60000;

после того, как не обнаружит ошибок.

Однако код в комментарии занимает больше минуты. Через минуту, хотя код все еще выполняется в Timer1_Tick, событие снова запускается, хотя мне не следовало запускать таймер обратно.

Может кто-нибудь увидеть, где я иду не так? Устанавливает ли интервал автоматически запуск резервного копирования таймера? Поэтому мне не нужно Timer1.Start () в конце моего кода, а установить интервал после завершения всего моего кода? Любая помощь будет оценена, спасибо.

ОБНОВЛЕНИЕ

Я попытался остановить таймер

timer1.Enabled = false;
timer1.Stop();

Перед установкой интервала, однако это также вызывает несколько тиков

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...