Вызов ServiceBase.OnStart и OnStop… один и тот же экземпляр?

Итак, у меня есть служба Windows, написанная на c #. Класс обслуживания происходит отServiceBaseи запуск и остановка службы вызывает методы экземпляраOnStart а такжеOnStop соответственно. Вот SSCE класса:

partial class CometService : ServiceBase
{
    private Server<Bla> server;
    private ManualResetEvent mre;
    public CometService()
    {
        InitializeComponent();
    }       
    protected override void OnStart(string[] args)
    {
        //starting the server takes a while, but we need to complete quickly
        //here so let's spin off a thread so we can return pronto.
        new Thread(() =>
        {
            try
            {
                server = new Server<Bla>();
            }
            finally
            {
                mre.Set()
            }
        })
        {
            IsBackground = false
        }.Start();
    }

    protected override void OnStop()
    {
        //ensure start logic is completed before continuing
        mre.WaitOne();
        server.Stop();
    }
}

Как можно видеть, существует довольно много логики, которая требует, чтобы, когда мы вызываемOnStopмы имеем дело с одним и тем жеServiceBase как когда мы звонилиOnStart.

Могу ли я быть уверен, что это так?

Ответы на вопрос(2)

Ваш ответ на вопрос