C# отсчет времени по таймеру

326
23 декабря 2016, 10:55

Здравствуйте. Нужно посылать запросы на Web сервис по временному регламенту.

  1. 1 раз в 40 сек
  2. 1 раз в 2 мин
  3. один раз в сутки в 10:00:00
  4. один раз в сутки в 20:00:00
  5. один раз в сутки в 22:00:00

Код:

  private const double PeriodTimer = 10000;
    private DateTime _secondLevel40 = DateTime.Now;
    private DateTime _minutLevel2 = DateTime.Now;
    private readonly Timer _timer;
    //запуск таймера
    _timer = new Timer(PeriodTimer);
    _timer.Elapsed += OnTimedEvent;
 private async void OnTimedEvent(object sender, ElapsedEventArgs e)
    {
            //ВРЕМЕННОЙ УРОВЕНЬ 40сек
            if (DateTime.Now.Subtract(_secondLevel40).Seconds >= 40)
            {
                _secondLevel40= DateTime.Now;
                //отправка диагностики
            }

            //ВРЕМЕННОЙ УРОВЕНЬ 2мин
            if (DateTime.Now.Subtract(_minutLevel2).Minutes >= 2)
            {
                _minutLevel2 = DateTime.Now;
                //считываем инфо.
            }

            if (DateTime.Now.Hour == 10 && DateTime.Now.Minute == 0 && DateTime.Now.Second <= 10)
            {
                //считываем нормативное расписание.
            }

            if (DateTime.Now.Hour == 20 && DateTime.Now.Minute == 0 && DateTime.Now.Second <= 10)
            {
                //считываем нормативное расписание.
            }

            if (DateTime.Now.Hour == 22 && DateTime.Now.Minute == 0 && DateTime.Now.Second <= 10)
            {
                 //считываем нормативное расписание.
            }
    }

Т.е. таймер срабатывает раз в 10 сек и проверяет время. Циклические интервалы (раз в 40 сек) думаю нормально отработают со временем. А сработка в конкретное время боюсь может не произойти из за неточного счета самого таймера. Подскажите как лучше сделать?

READ ALSO
получение доступа к переменной [требует правки]

получение доступа к переменной [требует правки]

Доделываю проект одного человекаСтоит чтото по типу модификатора доступа на папках и так-же распространяется на переменные из ядра и запросы...

298
ftp_putI llegal PORT command in

ftp_putI llegal PORT command in

Открываею соединение через ftp_connect (на выходе ресурс) Логинюсь через ftp_login (на выходе true) Заливаю файл через ftp_put (на выходе false)

309
PHP &ldquo;теряется&rdquo; массив, после include файлов из Joomla

PHP “теряется” массив, после include файлов из Joomla

Есть простой(основной) скрипт indexphp:

366