3

WindowsサービスをC#で記述しています。2つのスレッドを開始します。1つはWebサービスをプールし、もう1つは新しいジョブが到着するのをMonitorオブジェクトで待機します。その上、メインスレッドはを使用してWCFサービスホストとして機能しNetNamedPipeBindingます。これにより、クライアントアプリケーションはコールバックを登録し、通知を送り返すことができます。

私が抱えている問題は、このWindowsサービスが実行されているときに、Windows XP、SP3で実行されているコンピューターを休止状態またはスタンバイにできないことです。Windowsを休止状態またはスタンバイに設定しても、何も起こりません。その後、Service Managerに移動してサービスを停止すると、すぐにシステムの休止状態が始まります。

を拡張するサービスクラスにはServiceBase、CanHandlePowerEvent、CanPauseAndContinueなどのプロパティがtrueに設定されています...それは何の違いもありませんでした。

問題は、ハイバネーション/スタンバイの進行を妨げるものは何でしょうか。それを避けるために何に注意する必要がありますか?

4

1 に答える 1

5

CanHandlePowerEventプロパティをtrueに設定したことだけを述べています。詳細はわかりませんが、ステータスがの場合は、を処理しOnPowerEventて戻る必要があり、おそらく実行中の処理をすべて停止する必要があると思います。trueQuerySuspend

詳細はこちら:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicebase.onpowerevent%28v=VS.80%29.aspx

于 2010-05-16T13:46:29.867 に答える