Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 远程对象的WeakReference(透明代理)_C#_.net_Remoting_Weak References - Fatal编程技术网

C# 远程对象的WeakReference(透明代理)

C# 远程对象的WeakReference(透明代理),c#,.net,remoting,weak-references,C#,.net,Remoting,Weak References,我有一个理论问题 简称: 如果对透明代理对象的最后一次引用是WeakReference,但真实对象仍在宿主进程中被引用,则将收集该对象 例如: 使用的示例没有意义,但实际场景太复杂,无法描述 假设存在使用WeakReference实现的缓存,如下所述: 现在缓存中充满了位于另一个进程远程处理中的对象。这些对象在本地进程中仅为透明代理对象,其生存期由另一个进程控制 如果没有魔法,我假设代理对象被收集,因为代理对象只是真实对象的句柄。在第一次运行GC之后,缓存是空的 有没有什么神奇的东西,这种理论

我有一个理论问题

简称:

如果对透明代理对象的最后一次引用是WeakReference,但真实对象仍在宿主进程中被引用,则将收集该对象

例如:

使用的示例没有意义,但实际场景太复杂,无法描述

假设存在使用WeakReference实现的缓存,如下所述:

现在缓存中充满了位于另一个进程远程处理中的对象。这些对象在本地进程中仅为透明代理对象,其生存期由另一个进程控制

如果没有魔法,我假设代理对象被收集,因为代理对象只是真实对象的句柄。在第一次运行GC之后,缓存是空的

有没有什么神奇的东西,这种理论上的缓存可以用于远程对象?
透明代理将由GC收集。因此,这样的缓存对RemoteObjects不起作用

您不应该简单地测试一下吗?创建弱引用。永久睡眠或GC。收集并检查它是否有任何价值?