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();