从内部卸载AppDomain

| 我们已经构建了WPF可执行文件。 我想在子AppDomain中启动此可执行文件。 因此,将有一个名为Boot loader的主机AppDomain,它将在单独的AppDomain中启动WPF应用。 WPF应用程序可以自行触发更新,将新文件下载到一个临时文件夹中,然后需要向引导加载程序发出信号以卸载它并更新WPF dll /文件。更新完成后,我们要重新启动WPF应用程序。 所以首先我需要创建一个新域:
AppDomain wpfDomain = AppDomain.CreateDomain(\"WPF Domain\");
wpfDomain.ExecuteAssembly(WPFAPP_PATH + \"WpfApp.exe\");
现在,棘手的部分是弄清楚如何向引导加载程序发送信号以卸载WPF应用程序并对其进行更新。 我尝试处理
DomainUnload
事件。它是在WPF域中调用的,因此我无法重新启动该域。尝试调用以重新创建WPF AppDomain并执行程序集时,出现2字样。 接下来,我读到卸载使域中的所有线程中止,因此我尝试为WPF域创建一个新线程并将主线程加入其中。下载更新时,我内部呼叫了“ 3”。 困难之处在于\“ parent \”(引导加载程序)AppDomain不知道何时更新和重新启动子AppDomain,但是我无法弄清楚子级如何能够干净地通知父级,然后卸载。 有什么想法吗?     
已邀请:
        回答您的原始问题:我想到的一个解决方案是创建一个ManualResetEvent,退出时可以在子级中触发它。在加载程序中,您的主线程正在等待此事件的信号。完成可执行文件的更新并重新创建子域后,可以再次重置事件。     

要回复问题请先登录注册