gpt4 book ai didi

c# - 在 .NET 中跨 AppDomains 移动对象

转载 作者:太空宇宙 更新时间:2023-11-03 18:50:00 25 4
gpt4 key购买 nike

有没有一种方法可以在 AppDomain 之间有效地共享或移动 .NET 对象?我意识到 AppDomains 的目的是提供隔离——但是我有一个案例,我需要移动一个相对较大的、缓存的不可变对象(immutable对象)集,这些对象的计算和创建成本很高。目前,我有一种有效的序列化方法,但速度相当慢。

最佳答案

您不能在 AppDomain 中移动一个对象而不对其进行序列化。这是 AppDomain 的要点 - 您几乎可以将其视为一个完全独立的进程。

这就是 MarshallByRefObject 发挥作用的地方。它允许您通过远程处理使用来自其他 AppDomain 的对象,而不必跨 AppDomain 边界对其进行序列化。您仍在通过远程处理工作,因此它比将对象保存在同一个 AppDomain 中要慢,但是如果对象很大并且您不经常使用它,与序列化和反序列化相比,这可以节省大量时间它在第二个 AppDomain 中创建一个新副本。

关于c# - 在 .NET 中跨 AppDomains 移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981773/

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