Timer Срабатывание события Tick - C#

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

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

Подскажите пожалуйста, каждое следующее событие Tick будет срабатывать с учетом времени работы предыдущего тика или же ровно по времени будет исполняться?

Решение задачи: «Timer Срабатывание события Tick»

textual
Листинг программы
  1. private static System.Timers.Timer aTimer;
  2. private static DateTime startTime;
  3. private static int desiredInterval;
  4. private static int ticks;
  5.  
  6. public static void Main()
  7. {
  8.     SetTimer();
  9.  
  10.     Console.WriteLine("\nPress the Enter key to exit the application...\n");
  11.     Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
  12.     Console.ReadLine();
  13.     aTimer.Stop();
  14.     aTimer.Dispose();
  15.  
  16.     Console.WriteLine("Terminating the application...");
  17. }
  18.  
  19. private static void SetTimer()
  20. {
  21.     // Create a timer with a two second interval.
  22.     startTime = DateTime.Now;
  23.     desiredInterval = 2000;
  24.     aTimer = new System.Timers.Timer(desiredInterval);
  25.     ticks = 0;
  26.     // Hook up the Elapsed event for the timer.
  27.     aTimer.Elapsed += OnTimedEvent;
  28.     aTimer.AutoReset = true;
  29.     aTimer.Enabled = true;
  30. }
  31.  
  32. private static void OnTimedEvent(Object source, ElapsedEventArgs e)
  33. {
  34.     Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
  35.                       e.SignalTime);
  36.     ticks++;
  37.     var desiredTime = startTime.AddMilliseconds((ticks + 1) * desiredInterval);
  38.     var interval = (desiredTime - DateTime.Now).TotalMilliseconds;
  39.     aTimer.Interval = interval;
  40. }

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


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

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

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

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

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

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