9

C# で Windows サービスを作成しています。サービスコントロールパネルでサービスを停止したときも、システムをシャットダウンしたときと同じ対応をしたい。どちらの場合も同じアクションを取りたいと思います。

をオーバーライドServiceBase.OnShutdown()する必要がありますか、またはServiceBase.OnStop()両方のケースでオーバーライドするだけで十分ですか?

4

2 に答える 2

8

はい。OnStop()マシンのシャットダウン時に呼び出されます。OnShutdown()マシンがシャットダウン中であることを具体的に知る必要がある場合に使用します。

更新: これが最初に投稿されてからコメントで指摘されているように、これは必ずしもそうではありません。OnStop()したがって、コードは、マシンがシャットダウンされたときに呼び出される場合と呼び出されない場合があるという前提で作成する必要があります。シャットダウン中にクリーンアップする必要がある場合は、OnShutdown().

于 2013-01-25T14:03:48.503 に答える