计算机关闭时Windows Service OnStop

Ste*_*bbi 6 c# windows-services

我正在用C#编写Windows服务.我希望在服务控制面板停止服务时采取相同的操作,就像关闭系统一样.我想对两种情况采取相同的行动.

我是否必须覆盖ServiceBase.OnShutdown()或覆盖ServiceBase.OnStop()两种情况?

Pet*_*ete 5

是。OnStop()当计算机关闭时被调用。OnShutdown()适用于需要特别了解机器正在关闭的情况。

  • 这似乎不再正确。在机器关闭期间,不会调用OnStop (6认同)

rsc*_*ach 5

覆盖OnShutdown是正确的方法。OnStop关机期间不调用。

Microsoft Windows 添加了一个名为的选项Fast Startup,它实际上不会关闭计算机。

Fast Startup设置说明中所述,Restart不受影响。这就是Restart触发器OnShutdownShutdown不触发器的原因。

关闭Fast Startup将引发OnShutdown两个RestartShutdown

电源选项系统设置