Посоветуйте по оптимизации периодического выполнения кода - 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("Проверка");
}
}