我有一个理论问题。
简短:
如果对透明代理对象的最后引用是 WeakReference,是否会收集透明代理对象,但在宿主进程中仍引用真实对象。
示例:
使用的示例没有意义,但真实场景太复杂而无法描述。
假设有一个使用 WeakReferences 实现的缓存,如下所述: WeakReferenceExampleMSDN
现在缓存中充满了存在于另一个进程(远程处理)中的对象。这些对象在本地进程中只是透明的代理对象,它们的生命周期由其他进程控制。
如果没有魔法,我假设代理对象被收集,因为代理对象只是真实对象的句柄。第一次运行 GC 后,缓存为空。
- 有什么魔力吗?这个理论上的缓存可以与远程对象一起使用吗?