2015-02-11 82 views
0

我有很简单的代码,如:的AppDomain卸载关闭应用

var childDomain = AppDomain.CreateDomain("child"); 
childDomain.ExecuteAssembly("WpfApplication1.exe"); 
AppDomain.Unload(childDomain); 

但它关闭的应用程序在所有。我在父应用程序中没有任何对WpfApplication1.exe的引用。我读到这个 ​​- AppDomain Unload killing Parent AppDomain但它没有帮助。

那么我在做什么错了?

+0

检查是否有任何异常抛出崩溃的过程? – 2015-02-11 11:02:25

+0

只是一个问题,你真的需要自己手动创建这个应用程序域吗?你可以做一个简单的Process.Start()来运行你的外部应用程序,它将自己创建appdomain。 – DarkUrse 2015-02-11 11:03:33

+0

@SriramSakthivel,我该如何做到这一点?我想对子域进行一些控制。例如捕捉异常,设置线程原则等。 – Crossman 2015-02-11 11:15:03

回答

0

问题出在这一行: childDomain.ExecuteAssembly(“WpfApplication1.exe”);

ExecuteAssembly方法在与调用方相同的线程上运行应用程序。所以卸载正在杀死主线程。该解决方案在新的STA线程中运行子应用程序。

相关问题