gpt4 book ai didi

c# - 应用程序域的用途是什么?

转载 作者:行者123 更新时间:2023-12-02 01:05:29 26 4
gpt4 key购买 nike

我大致了解 AppDomain 是什么,但我不完全了解 AppDomain 的用途。

我参与了一个基于大型服务器的 C#/C++ 应用程序,我想知道如何使用 AppDomains 提高稳定性/安全性/性能。

特别是:

  • 我了解一个域中的错误或致命异常不会影响同一进程中运行的其他应用域 - 这是否也适用于非托管/C++ 异常,甚至可能是堆损坏或其他内存问题。
  • AppDomain 间的通信如何进行?
  • 使用 AppDomains 与简单地生成许多进程有何不同?

最佳答案

AppDomain 的基本用例是在托管第 3 方代码的环境中,因此不仅需要动态加载程序集,还需要卸载它们。

无法单独卸载程序集。因此,您必须创建一个单独的 AppDomain 来容纳可能需要卸载的任何内容。然后,您可以在必要时丢弃并重建整个 AppDomain。

顺便说一句,CLR 的任何功能都无法防止 native 代码损坏堆。最终,CLR 是本地实现的并共享相同的地址空间。所以进程中的 native 代码可以在 CLR 的内部乱写乱画!隔离行为不良(即大多数) native 代码的唯一方法是操作系统级别的实际进程隔离。启动多个 .exe 进程并让它们通过某种 IPC 机制进行通信。

关于c# - 应用程序域的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4349801/

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