Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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# 对象终结或垃圾回收的事件_C#_.net_Garbage Collection - Fatal编程技术网

C# 对象终结或垃圾回收的事件

C# 对象终结或垃圾回收的事件,c#,.net,garbage-collection,C#,.net,Garbage Collection,对于远程处理框架,我需要保留一些关于我要返回的对象的元数据。 我无法控制对象本身(因此我无法使它们可识别),我也不知道它们的类型。我唯一的假设是它是引用类型 问题是生命周期,我什么时候释放元数据 我打算创建一个静态字典(ConcurrentDictionary),并在那里保存对对象和元数据的WeakReference。问题是,我如何知道何时删除元数据? 当对象本身完成时,是否有方法接收通知 我也不在乎亡灵术(物体复活) 谢谢收集特定对象时,您不会收到信号 您最好的选择确实是将meatadata与

对于远程处理框架,我需要保留一些关于我要返回的对象的元数据。 我无法控制对象本身(因此我无法使它们可识别),我也不知道它们的类型。我唯一的假设是它是引用类型

问题是生命周期,我什么时候释放元数据

我打算创建一个静态字典(ConcurrentDictionary),并在那里保存对对象和元数据的WeakReference。问题是,我如何知道何时删除元数据? 当对象本身完成时,是否有方法接收通知

我也不在乎亡灵术(物体复活)


谢谢

收集特定对象时,您不会收到信号


您最好的选择确实是将meatadata与弱引用相结合,并定期扫描集合

采集特定对象时,不会收到信号


您最好的选择确实是将meatadata与弱引用相结合,并定期扫描集合

如果您使用的是.NET4或更高版本,则可以使用

这意味着您(可能)不需要担心自己释放元数据:一旦对象本身消失,元数据就会从表中消失

ConditionalWeakTable
类与其他类不同 集合对象在其密钥的对象生存期的管理中 存储在集合中。通常,当对象存储在 集合,它的生命周期将一直持续到被删除为止(并且没有 对对象的附加引用)或直到集合对象 它本身被摧毁了。但是,在
ConditionalWeakTable
类中,向表中添加键/值对并不能确保 即使可以直接从服务器访问该密钥,该密钥也将保持不变 存储在表中的值(例如,如果表包含一个键, A、 值为V1,第二个键为B,值为P2,包含 对a)的引用。相反,
ConditionalWeakTable
如果没有其他项,则自动删除键/值项 表外部存在对键的引用


如果您使用的是.NET4或更高版本,则可能会使用

这意味着您(可能)不需要担心自己释放元数据:一旦对象本身消失,元数据就会从表中消失

ConditionalWeakTable
类与其他类不同 集合对象在其密钥的对象生存期的管理中 存储在集合中。通常,当对象存储在 集合,它的生命周期将一直持续到被删除为止(并且没有 对对象的附加引用)或直到集合对象 它本身被摧毁了。但是,在
ConditionalWeakTable
类中,向表中添加键/值对并不能确保 即使可以直接从服务器访问该密钥,该密钥也将保持不变 存储在表中的值(例如,如果表包含一个键, A、 值为V1,第二个键为B,值为P2,包含 对a)的引用。相反,
ConditionalWeakTable
如果没有其他项,则自动删除键/值项 表外部存在对键的引用


虽然通常不建议您这样做,但您也可以编写自己的终结器,以便在对象被终结时不必知道。条件性可修改的建议听起来像是针对您试图实现的目标。

虽然通常不建议,但您也可以编写自己的终结器,这样您就知道对象何时完成。有条件的脆弱建议听起来像是针对你想要实现的目标。

可能的重复