マシンがスリープ状態になると正しく動作しないサードパーティ サービスがあります。したがって、マシンがスリープ状態になる前にサービスを停止したかったのです。その目的のために、イベントWindows Service
をリッスンしServiceBase.OnPowerEvent
てサードパーティ サービスをシャットダウンする C# を作成しました。
問題は、サービスのシャットダウンに約 5 ~ 6 秒かかることです。Sleep イベントが来たら、サードパーティ サービスのシャットダウンを開始します。しかし、処理が完了する前にマシンがスリープ状態になります。
Win32_PowerManagementEvent
クラスも代替アプローチとして使用してみましたが、それもクライアント処理が完了するのを待ちません。
システムがスリープ状態になる前に処理が完了するのを待つ方法はありますか?