我读过一些关于在 C# Finalizer 中不应该做的事情,但我怎么也找不到链接。当析构函数被调用时,在拥有析构函数的类中使用引用对象是否安全?我相信这就是我正在阅读的内容。但如果是这样的话,析构函数就无法调用 Dispose 方法来清理非托管资源,对吗?注意:我知道 IDisposable 和常见的实现。
1 回答
临摹微笑
TA贡献1982条经验 获得超2个赞
“规则”的基本要点是在终结器中,您只能调用具有已知活动根的对象(例如所有静态对象)和不具有也派生自活动根的对象,除非您CriticalFinalizerObject
是CriticalFinalizerObject
那么你就不能再调用其他CriticalFinalizerObject
的了。
您自己的类中的终结器所在的大多数对象可能会禁止触摸,因为它们不在活动根上(您的类毕竟正在被终结)并且它们不继承自CriticalFinalizerObject
.
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报
0/150
提交
取消