Выполнение в точное время - C#
Формулировка задачи:
Доброго дня суток!
Подскажите пожалуйста, как мне выполнять некое действие в точное время.
Например каждую минуту: 17:00:00:00, 17:01:00:00
Если использовать stopwatch, то время будет зависеть от времени, когда он запущен. А мне нужно точное время зависящее от времени на пк.
Если я запущу таймер в 17:00:33 то сработать он должен в ровно 17:01:00
Надеюсь, я понятно объяснил
Решение задачи: «Выполнение в точное время»
textual
Листинг программы
- class MainForm : Form
- {
- public MainForm()
- {
- var now = DateTime.Now;
- var nextTickDate = FloorToMinutes(now).AddMinutes(1);
- var toNextTick = nextTickDate - now;
- var timer = new System.Windows.Forms.Timer { Interval = (int)toNextTick.TotalMilliseconds };
- timer.Tick += (_, __) =>
- {
- var nowDate = DateTime.Now;
- timer.Interval = (int)(FloorToMinutes(nowDate).AddMinutes(1) - nowDate).TotalMilliseconds;
- MessageBox.Show($"Точное время: {DateTime.Now}");
- };
- timer.Enabled = true;
- }
- private DateTime FloorToMinutes(DateTime date)
- {
- return date
- .AddMilliseconds(-date.Millisecond)
- .AddSeconds(-date.Second);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д