Задать вопрос
mixtape774
@mixtape774
Занимаюсь Web, Desktop разработкой и реверсингом

Как лучше сделать переодический вызов процедуры C# в static class?

В общем, метод Timer_ResetIdle нужно вызывать каждую минуту. Как лучше это сделать с точки зрения нагрузки на цп? Был вариант с таймером, но к рабочему варианту так и не дошел. Получилось сделать через создание нового потока, в котором был цикл вызывающий Thread.Sleep - плохой вариант, как для ожидания, к тому же имеет погрешности. Собственно повторюсь, как на .NET выглядит наиболее рациональный вариант по эффективности ЦП?

Шаблон кода...
<b>static </b>class PowerMgr
{
        ....
        const uint RESET_IDLE_TIMER = 0x80000001;

        private static void Timer_ResetIdle(object arg)
        {
            SetThreadExecutionState(RESET_IDLE_TIMER);
            ......
        }
}
  • Вопрос задан
  • 2811 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@gleb_kudr
> Thread.Sleep
Ох ох, не надо так делать.

Есть прекрасный System.Timers.Timer, который и нужно использовать. Еще для таймеров можно использовать другой класс - System.Threading.Timer, вот статья в которой хорошо описаны их различия: msdn.microsoft.com/en-us/magazine/cc164015.aspx
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы