Выполнение в точное время - 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);
    }
}

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы