重新创建对“this”的根引用是否合法? 在 .net 析构函数中?
在 .net 中编写以下内容合法吗? public class A { public int i = 0 ~A() { Aref = this } } public static A Aref static void Main(string[] args)…
为什么在这个非常简单的场景中我的 .net 析构函数没有被调用?
我有以下代码: public class A { ~A() { Console.WriteLine("destructor") } } public static A Aref static void Main(string[] args) { Aref = new…
是否应该对没有终结器的对象调用 GC.SuppressFinalize?
由于某种原因 FXCop 似乎认为 我应该调用 GC.SuppressFinalize在 Dispose 中,无论我是否有终结器。 我错过了什么吗? 是否有理由对未定义终结器的对…
需要在使用 TcpClient 的类上实现终结器吗?
我有一个类(例如 MyClass),它使用(作为私有字段)一个 TcpClient 对象。 MyClass 实现了 IDisposable,在 Dispose 方法中调用 TcpClient.Close。 …
Python:在程序终止之前通过终结器刷新缓冲区
我保留了一个事务缓存,以便在发生水印或对象终结时刷新(到持久存储)。 由于 __del__ 是 不再保证在每个对象上调用,是将类似函数(或 __del__ 本身…
如何识别GC Finalizer线程?
我有一个 .NET (C#) 多线程应用程序,我想知道某个方法是否在 Finalizer 线程内运行。 我尝试过使用 Thread.CurrentThread.Name 但它不起作用(返回 n…
Ruby 中的 RAII(或者,如何在 Ruby 中管理资源)
我知道这是设计使然,你无法控制对象被销毁时会发生什么。 我还知道将某些类方法定义为终结器。 然而,C++ 的 RAII 的 ruby 习惯用法是这样的吗(…