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

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

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

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

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

textual
Листинг программы
    public partial class Service1 : ServiceBase
    {
        ManualResetEvent mre;
        public Service1()
        {
            InitializeComponent();
            mre = new ManualResetEvent(false);
        }
 
        protected override void OnStart(string[] args)
        {
            TimerCallback tm = new TimerCallback(Log);
            System.Threading.Timer timer = new System.Threading.Timer(tm, null, 0, 1000);
            mre.WaitOne();
        }
 
        protected override void OnStop()
        {
            mre.Set();
        }
 
        static void Log(object source)
        {
            LogErrors errors = new LogErrors();
            errors.WriteExceptionInFile("Проверка");
        }
    }

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


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

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

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