Моя программа на C#, работающая в качестве службы Windows, блокирует Windows XP от спящего режима
У меня есть служба Windows, написанная на C#. Он запускает два потока, один из которых объединяет в пул веб-службу, второй ожидает на объекте Monitor поступления нового задания. Кроме того, основной поток выступает в качестве хоста службы WCF, используя NetNamedPipeBinding
, Это позволяет клиентскому приложению зарегистрировать обратный вызов, а затем отправляет уведомления обратно.
Проблема у меня заключается в том, что, когда эта служба Windows работает, я не могу перевести компьютер в ждущий или ждущий режим, работающий под управлением Windows XP, SP3. Когда я устанавливаю Windows в спящий или ждущий режим, ничего не происходит. Затем, в тот момент, когда я захожу в Service Manager и останавливаю службу, системный спящий режим запускается немедленно.
Класс обслуживания, расширяющий ServiceBase
имеет такие свойства, как CanHandlePowerEvent, CanPauseAndContinue и т. д., имеющие значение true... Это не имеет никакого значения.
Вопрос в том, что может блокировать переход в спящий режим / режим ожидания. Что я должен заботиться, чтобы избежать этого?
1 ответ
Вы только упоминаете, что вы установили CanHandlePowerEvent
свойство к истине. Я предполагаю, что вам также придется справиться с OnPowerEvent
и вернуться true
если статус QuerySuspend
а также, вероятно, прекратить все, что вы делаете, хотя я не знаю деталей этого.
Подробнее здесь: