Здравствуйте. Нужно посылать запросы на Web сервис по временному регламенту.
Код:
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 сек) думаю нормально отработают со временем. А сработка в конкретное время боюсь может не произойти из за неточного счета самого таймера. Подскажите как лучше сделать?
Продвижение своими сайтами как стратегия роста и независимости