Задать вопрос
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);
            ......
        }
}
  • Вопрос задан
  • 2831 просмотр
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Пригласить эксперта
Ответы на вопрос 1
@gleb_kudr
> Thread.Sleep
Ох ох, не надо так делать.

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

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

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