So I\'ve got a Windows service written in c#. The service class derives from ServiceBase
, and starting and stopping the service calls instance methods OnStart
If you look in the Program.cs
class, you'll see code like the following:
private static void Main()
{
ServiceBase.Run(new ServiceBase[]
{
new CometService()
});
}
That is, the instance is created by code within your own project. It's that one instance that all Service Manager calls (including OnStart
and OnStop
) are made against.
I guess is the same instance. You can do a quick test adding a static field in the class to keep track of the reference to the object used in the OnStart and comparing it to the instance of the OnStop.
private static CometService instance = null;
protected override void OnStart(...)
{
instance = this;
...
}
protected override void OnStop()
{
object.ReferenceEquals(this, instance);
...
}