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

我读过一些关于在 C# Finalizer 中不应该做的事情,但我怎么也找不到链接。

当析构函数被调用时,在拥有析构函数的类中使用引用对象是否安全?

我相信这就是我正在阅读的内容。但如果是这样的话,析构函数就无法调用 Dispose 方法来清理非托管资源,对吗?

注意:我知道 IDisposable 和常见的实现。


长风秋雁
浏览 90回答 1
1回答

临摹微笑

“规则”的基本要点是在终结器中,您只能调用具有已知活动根的对象(例如所有静态对象)和不具有也派生自活动根的对象,除非您CriticalFinalizerObject是CriticalFinalizerObject那么你就不能再调用其他CriticalFinalizerObject的了。您自己的类中的终结器所在的大多数对象可能会禁止触摸,因为它们不在活动根上(您的类毕竟正在被终结)并且它们不继承自CriticalFinalizerObject.
打开App,查看更多内容
随时随地看视频慕课网APP