Как остановить таймер во время спящего режима / спящего режима в приложении c# winform?

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

1 ответов


Вы можете обрабатывать 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();
    }