Посоветуйте по оптимизации периодического выполнения кода - 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("Проверка"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д