卸载子AppDomain杀死父

时间:2017-03-13 04:39:11

标签: c# .net .net-4.5 appdomain

我想找出AppDomains。

我使用以下代码在具有参数的新子AppDomain中再次运行当前应用程序:

    AppDomain domain = AppDomain.CreateDomain("NewAppDomain", null);
    domain.ExecuteAssemblyByName(currentAssembly.FullName, "argument");

它工作正常,但是,当我尝试通过AppDomain.Unload(domain);卸载它时,它也会杀死从中调用它的父。

在调试输出中,我可以看到以下错误:

Exception thrown: 'System.Threading.ThreadAbortException' in mscorlib.dll
Exception thrown: 'System.Threading.ThreadAbortException' in mscorlib.dll
Exception thrown: 'System.Threading.ThreadAbortException' in TestAppDomain.exe
Exception thrown: 'System.Threading.ThreadAbortException' in System.Windows.Forms.dll
Exception thrown: 'System.AppDomainUnloadedException' in TestAppDomain.exe

我不确定这里的问题是什么,如何在不杀死Parent的情况下正确卸载这样的子AppDomain?

1 个答案:

答案 0 :(得分:0)

在我尝试卸载AppDomain之前,主线程没有完全停止。 正确地停止它可以修复错误。