Хобрук: Ваш путь к мастерству в программировании

Как ведут себя службы Windows при входе/выходе из режима сна или гибернации?

У меня есть служба, написанная на С#, которая не работает корректно, когда компьютер переходит в спящий режим. Пользователю необходимо вручную остановить и перезапустить службу, чтобы сохранить функциональность. Я знаю, в чем проблема, но я не уверен, где это исправить. Как ведут себя службы Windows при переходе в спящий режим и выходе из него и в спящий режим?

06.07.2012

Ответы:


1

Как сервисы реагируют на события питания? Действительно, это зависит.

В вашей службе вы можете обрабатывать события hibernate/suspend/etc, обрабатывая их в своей службе.

  protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
  { 
     //do stuff here
  }
06.07.2012
  • Не забывайте, что ServiceBase.CanHandlePowerEvent должно быть истинным для вызова OnPowerEvent. 06.07.2012
  • Отлично, я не знал об обработчике OnPowerEvent. Это также может исправить некоторые другие проблемы, которые у нас были с сервисом, а также с отключением питания. 06.07.2012
  • Каково поведение по умолчанию, если я не переопределю этот метод? 06.07.2017
  • Переопределение этого метода позволяет указать, что происходит в службе до завершения события питания. Это не обязательно, но может понадобиться, если вам нужно выполнить какую-либо очистку до завершения определенного события питания. 16.11.2017
  • Это работает только для обработки как сна, так и гибернации в целом. Есть ли способ определить, является ли это спящим или спящим режимом? В обоих случаях пойманное значение PowerBroadcastStatus похоже на Suspend. 18.01.2021
  • Новые материалы

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

    Обзор 20 основных и современных методов работы с массивами в JavaScript
    Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

    Да, но я чувствую необходимость указать, что это или не единственные два.
    Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.

    Получение стоковых обновлений с помощью Python
    Для начинающего финансового аналитика Введение Описание: Этот проект Python создает скрипт для получения текущих обновлений акций с финансового веб-сайта Yahoo. Для этого проекта мы..