Mein C # Programm als Windows-Dienst ausgeführt wird, blockiert Windows XP aus dem Ruhezustand
-
27-09-2019 - |
Frage
Ich habe Windows-Dienst in C # geschrieben. Es beginnt zwei Threads, ist man ein Web-Service-Pooling Sekunde auf einem Monitor-Objekt wartet auf einen neuen Job zu kommen. Außerdem wirkt der Haupt-Thread als Host-Dienst WCF NetNamedPipeBinding
. Damit kann die Client-Anwendung einen Rückruf registrieren und dann sendet Benachrichtigungen zurück.
Das Problem, das ich habe ist, dass, wenn dieser Windows-Dienst läuft, kann ich den Ruhezustand oder Standby nicht meinem Computer, die unter Windows XP ausgeführt wird, SP3. Wenn ich Windows auf Ruhezustand oder Standby-Modus, passiert nichts. Dann wird in dem Moment, als ich zu Service Manager gehen und den Dienst beenden, startet das System den Ruhezustand sofort.
Die Service-Klasse Erweiterung des ServiceBase
hat Eigenschaften wie CanHandlePowerEvent, CanPauseAndContinue usw. Satz wahr ... Das keinen Unterschied machen hat.
Die Frage ist: Was kann den Ruhezustand / Standby von Verfahren blockiert? Was sollte ich kümmern uns um es zu vermeiden?
Lösung
Sie erwähnen nur, dass Sie die CanHandlePowerEvent
Eigenschaft auf true gesetzt. Ich gehe davon aus, dass Sie auch die OnPowerEvent
und Rückkehr true
handhaben müssen, wenn der Status QuerySuspend
ist und wahrscheinlich auch Stop-alles, was Sie tun, obwohl ich weiß nicht, die Details dieses.
Weitere Informationen finden Sie hier: