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