计算机关闭时Windows Service OnStop

时间:2013-01-25 13:55:31

标签: c# windows-services

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

我是否必须覆盖ServiceBase.OnShutdown(),或者在两种情况下都覆盖ServiceBase.OnStop()

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

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

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

关闭Fast Startup会同时触发OnShutdownRestart的{​​{1}}。

Power Options System Settings