gpt4 book ai didi

.NET:有什么方法可以判断对象何时被处理/垃圾收集?

转载 作者:行者123 更新时间:2023-12-04 10:12:51 25 4
gpt4 key购买 nike

给定一个对象,有没有办法在该对象被垃圾收集时得到通知?

我正在尝试让 C# 扩展方法的行为更像 mixin(特别是在添加日志记录方面)。因此,基本上每个对象都会获得一个新的 Logger() 方法,该方法返回一个 ILog,该方法根据作为扩展方法目标的对象创建和缓存。

效果很好,唯一的问题显然是在一个对象消失后,它的记录器可能会徘徊一段时间。我当然可以设置一些定期机制来扫描记录器缓存并清除它,但我更愿意设置一些垃圾收集通知,以便我了解系统何时不再使用我的对象。

有人知道这样做的方法吗?

最佳答案

我认为这里通常所做的是您维护一个列表 WeakReferences .使用弱引用,您可以通过检查 IsAlive 来判断您所引用的对象是否已被垃圾收集。属性(property)。

关于.NET:有什么方法可以判断对象何时被处理/垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547073/

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