我想找出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?
答案 0 :(得分:0)
在我尝试卸载AppDomain之前,主线程没有完全停止。 正确地停止它可以修复错误。