gpt4 book ai didi

c# - 跨应用域边界传递 IEnumerable

转载 作者:太空狗 更新时间:2023-10-30 00:58:53 25 4
gpt4 key购买 nike

跨应用域边界传递 IEnumerable 通常是个坏主意吗?

我问是因为根据我目前对 IEnumerable 实现的理解,在枚举集合之前不会使用枚举器。当您跨越应用程序域边界时,尤其是涉及多个进程时,这不会导致跨越边界的多次旅行,每次返回一个项目吗?如果是这种情况,那么在可能的情况下返回整个集合(例如在数组中)在性能方面会更可取,不是吗?

最佳答案

首先,它取决于要枚举的对象是如何:是否继承自 MarshalByRef 或是否可序列化。在第二种情况下,副本被传递到另一个应用程序域,这类似于数组方法。另一方面,如果它继承自 MarshalByRef,则它在很大程度上取决于枚举器如何访问所有者实例。

所以一般来说,如果您确实知道会发生什么,我会说您应该只在应用程序域中传递 IEnumerable。否则,您可能会得到意想不到的结果或性能不佳。

关于c# - 跨应用域边界传递 IEnumerable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2033998/

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