Наконец, не выполняется, когда в потоке, работающем в службе Windows

Может кто-нибудь объяснить, почему этот блок окончательно не выполняется? Я читал посты о том, когда ожидать, что блок наконец не будет выполнен, но, похоже, это другой случай. Этот код нуждается в TopShelf и log4net. Я бегу .net 4.5

Я предполагаю, что это должен быть механизм службы Windows, который запускает необработанные исключения, но почему он работает до завершения блока finally?

using log4net;
using log4net.Config;
using System;
using System.Threading;
using Topshelf;

namespace ConsoleApplication1
{
    public class HostMain
    {
        static void Main(string[] args)
        {
            HostFactory.Run(x =>
            {
                x.Service<HostMain>(s =>
                {
                    s.ConstructUsing(name => new HostMain());
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });

                x.RunAsLocalSystem();
                x.SetServiceName("TimerTest");
            });
        }

        public void Stop()
        {
            LogManager.GetLogger("MyLog").Info("stopping");
        }

        public void Start()
        {
            XmlConfigurator.Configure();

            LogManager.GetLogger("MyLog").Info("starting");

            new Thread(StartServiceCode).Start();
        }

        public void StartServiceCode()
        {
            try
            {
                LogManager.GetLogger("MyLog").Info("throwing");

                throw new ApplicationException();
            }
            finally
            {
                LogManager.GetLogger("MyLog").Info("finally");
            }
        }
    }
}

выходы

starting
throwing
stopping

РЕДАКТИРОВАТЬ: Пожалуйста, прокомментируйте, почему вы понижаете, возможно, вы не понимаете проблему? Я вижу здесь большую проблему. Вы пишете некоторую доменную логику, которая делает важные вещи в пункте finally исключений. Затем, если вы размещаете логику в службе Windows, дизайн внезапно нарушается.

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

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