AppDomain ExecuteAssembly приложения WPF закрывается, как и ожидалось

Я запускаю приложение WPF во вторичном домене приложений, используя API "ExecuteAssembly" в фоновом потоке. Когда это вторичное приложение закрывается (например, пользователь закрывает главное окно), я обнаружил, что обычные последовательности выключения не выполняются так, как если бы приложение запускалось в автономном AppDomain. В частности, метод OnExit класса Application не вызывается.

кто-нибудь еще сталкивался с этим?

Например, запуск моего вторичного appdomain

        var thread = new Thread(() =>
        {
            var currentAppDomain = Thread.GetDomain();
            try
            {
                // line below blocks until complete
                currentAppDomain.ExecuteAssembly("PathToAssemblyToExecute");
                // at this point, executing assembly has been closed
            }
            catch (ThreadAbortException)
            {
                // do nothing.  this can occur due to timing issues.  framework seems
                // to send this exception out when unloading an appdomain
            }
            catch (Exception)
            {
                // an unhandled exception has occured in this app                                        
                AppDomain.Unload(currentAppDomain);
            }
        });
        thread.SetApartmentState(ApartmentState.STA);
        thread.Start();

0 ответов

Другие вопросы по тегам