gpt4 book ai didi

c# - 如何在单独的 AppDomain 中运行方法?

转载 作者:太空狗 更新时间:2023-10-29 21:15:15 27 4
gpt4 key购买 nike

在我的场景中,我想在单独的 AppDomain 中执行一个方法。 我可以采用多少种不同的方式来实现这一目标?

特别是,我有以下问题:

  • 我可以将程序集加载到 AppDomain A 中并在 AppDomain B 中执行它的方法吗?
  • 我似乎用 AppDomain.DoCallBack Method 实现了这个目标和 CrossAppDomainDelegate .我只是想不通将程序集和方法放在不同的 AppDomain 中有什么意义。是否将相同的程序集再次加载到另一个 AppDomain 中以执行该方法?

最佳答案

为了在单独的 AppDomain 中执行代码,必须将包含该代码的程序集加载到该 AppDomain 中。从那里,您可以使用反射或 AppDomain 类上的“CreateInstance”方法从您的托管域调用第二个 AppDomain 中的方法。

请记住,AppDomains 是硬边界。为了跨 AppDomain 边界进行通信,您将需要使用远程处理或真正的 IPC-ish 机制。

这有点过时了,但我相信它仍然适用。 http://blogs.msdn.com/b/suzcook/archive/2003/06/12/57169.aspx

Suzanne Cook 有一系列与此主题相关的帖子,因此可能值得浏览一下她的文件。

查看 AppDomain 类上的“CreateInstance”系列方法。过去我用过 CreateInstanceFromAndUnwrap()对于这种情况相当多。

至于你的问题是有多少种方法可以做到这一点......嗯,很多,但这在很大程度上取决于具体情况和你手头的元素。

关于c# - 如何在单独的 AppDomain 中运行方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3380575/

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