Как остановить таймер в спящем режиме / режиме сна в приложении C # winform? - PullRequest
9 голосов
/ 01 января 2011

У меня есть приложение, которое выполняет определенную задачу через некоторое время (управляется таймером). Но всякий раз, когда я запускаю ПК после спящего режима, приложение запускается. Это означает, что таймер продолжает работать во время гибернации как минимум на один тик. Как я могу избежать этого.

1 Ответ

17 голосов
/ 01 января 2011

Вы можете обработать событие SystemEvents.PowerModeChanged, чтобы остановить таймер, когда машина приостанавливается, и запустить его снова, когда он возобновляет работу.

 SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

...

 void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
    {
        if (e.Mode == PowerModes.Suspend) PauseTimer();
        else if (e.Mode == PowerModes.Resume) ResumeTimer();
    }
...