Посоветуйте по оптимизации периодического выполнения кода - C#

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

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

Есть у меня приложение. Нужно, чтобы код его выполнялся каждые полминуты. Сделал цикл while(true), ну и в нем проверяю, если прошло полминуты, то выполняю код, затем снова жду, когда полминуты пройдет. Все вроде хорошо, если машина многоядерная. Если одноядерная, то такой подход ведет к 100% загрузке проца и диким тормозам. Что в данном случае можно сделать? Чем заменить while(true)?

Решение задачи: «Посоветуйте по оптимизации периодического выполнения кода»

textual
Листинг программы
  1.     public partial class Service1 : ServiceBase
  2.     {
  3.         ManualResetEvent mre;
  4.         public Service1()
  5.         {
  6.             InitializeComponent();
  7.             mre = new ManualResetEvent(false);
  8.         }
  9.  
  10.         protected override void OnStart(string[] args)
  11.         {
  12.             TimerCallback tm = new TimerCallback(Log);
  13.             System.Threading.Timer timer = new System.Threading.Timer(tm, null, 0, 1000);
  14.             mre.WaitOne();
  15.         }
  16.  
  17.         protected override void OnStop()
  18.         {
  19.             mre.Set();
  20.         }
  21.  
  22.         static void Log(object source)
  23.         {
  24.             LogErrors errors = new LogErrors();
  25.             errors.WriteExceptionInFile("Проверка");
  26.         }
  27.     }

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


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

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

8   голосов , оценка 3.75 из 5

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

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

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