gpt4 book ai didi

c# - 向原始应用程序域发送消息

转载 作者:行者123 更新时间:2023-11-30 21:17:59 25 4
gpt4 key购买 nike

我有一个应用程序可以像这样创建一个新的应用程序域:

private static AppDomain domain = null;

private static void LoadAndLaunchAppDomain(string assemblyFile, string typeName)
{
AppDomainSetup setup = new AppDomainSetup()
{
ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
ShadowCopyFiles = "true"
};

domain = AppDomain.CreateDomain("ClientKernel", null, setup);
domain.UnhandledException += new UnhandledExceptionEventHandler(domain_UnhandledException);
ClientKernelLauncher launcher = (ClientKernelLauncher)domain.CreateInstanceFromAndUnwrap(assemblyFile, typeName);
launcher.Launch();
}

static void domain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// handler
}

在某个时候抛出异常并且流到达 HANDLER 内部。我真正想要的是在发生这种情况时重新创建域。我注意到处理程序实际上是在“ClientKernel”应用程序域上运行,而不是在创建它的原始域上运行。

如何与原始域通信并告诉它再次调用 LoadAndLaunchAppDomain() 方法?

最佳答案

使用AppDomain.DoCallBack()在另一个 AppDomain 上调用方法。

我不确定一旦在调用 AppDomain 时抛出未处理的异常是否会起作用。但是,您可以试一试。

关于c# - 向原始应用程序域发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com