Первый раз постер, будь нежнее; -)
Я пишу аудио-приложение (на C ++), которое работает как служба Windows, использует WASAPI для выборки из линии в гнезде и выполняет некоторую обработку на нем.
Что-то, что я заметил, это то, что, когда мое приложение «записывает», Windows не будет автоматически приостанавливаться или переходить в спящий режим.
Я зарегистрировался для уведомлений о событиях питания, и, если я сам нажму кнопку приостановки, мой сервис получит соответствующие события питания и обработает их в порядке. Если я оставлю систему, чтобы приостановить ее самостоятельно, события питания никогда не будут получены.
Если я удаляю биты кода, где я ссылаюсь на WASAPI, события питания принимаются как обычно как при ручном, так и при автоматическом приостановлении. Похоже, что в WASAPI есть что-то, что заставляет Windows игнорировать таймер автоматического приостановления.
Может ли кто-нибудь помочь объяснить это поведение, и могу ли я что-нибудь сделать, чтобы остановить его? Я не хочу, чтобы мое приложение было одним из тех, которые плохо себя ведут и не позволяют системам зависать ..