Выполнение в точное время - C#

Узнай цену своей работы

Формулировка задачи:

Доброго дня суток! Подскажите пожалуйста, как мне выполнять некое действие в точное время. Например каждую минуту: 17:00:00:00, 17:01:00:00 Если использовать stopwatch, то время будет зависеть от времени, когда он запущен. А мне нужно точное время зависящее от времени на пк. Если я запущу таймер в 17:00:33 то сработать он должен в ровно 17:01:00 Надеюсь, я понятно объяснил

Решение задачи: «Выполнение в точное время»

textual
Листинг программы
  1. class MainForm : Form
  2. {
  3.     public MainForm()
  4.     {
  5.         var now = DateTime.Now;
  6.         var nextTickDate = FloorToMinutes(now).AddMinutes(1);
  7.         var toNextTick = nextTickDate - now;
  8.  
  9.         var timer = new System.Windows.Forms.Timer { Interval = (int)toNextTick.TotalMilliseconds };
  10.        
  11.         timer.Tick += (_, __) =>
  12.         {
  13.             var nowDate = DateTime.Now;
  14.             timer.Interval = (int)(FloorToMinutes(nowDate).AddMinutes(1) - nowDate).TotalMilliseconds;
  15.  
  16.             MessageBox.Show($"Точное время: {DateTime.Now}");
  17.         };
  18.        
  19.         timer.Enabled = true;
  20.     }
  21.    
  22.     private DateTime FloorToMinutes(DateTime date)
  23.     {
  24.         return date
  25.             .AddMilliseconds(-date.Millisecond)
  26.             .AddSeconds(-date.Second);
  27.     }
  28. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы