为了账号安全,请及时绑定邮箱和手机立即绑定

C# 以及在终结器中不该做的事情

C# 以及在终结器中不该做的事情

C#
长风秋雁 2023-08-20 14:23:28
我读过一些关于在 C# Finalizer 中不应该做的事情,但我怎么也找不到链接。当析构函数被调用时,在拥有析构函数的类中使用引用对象是否安全?我相信这就是我正在阅读的内容。但如果是这样的话,析构函数就无法调用 Dispose 方法来清理非托管资源,对吗?注意:我知道 IDisposable 和常见的实现。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

“规则”的基本要点是在终结器中,您只能调用具有已知活动根的对象(例如所有静态对象)和不具有也派生自活动根的对象,除非您CriticalFinalizerObjectCriticalFinalizerObject那么你就不能再调用其他CriticalFinalizerObject的了。

您自己的类中的终结器所在的大多数对象可能会禁止触摸,因为它们不在活动根上(您的类毕竟正在被终结)并且它们不继承自CriticalFinalizerObject.

查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信