gpt4 book ai didi

c# - 为什么在这个非常简单的场景中我的 .net 析构函数没有被调用?

转载 作者:行者123 更新时间:2023-11-30 18:54:29 25 4
gpt4 key购买 nike

我有以下代码:

 public class A
{
~A()
{
Console.WriteLine("destructor");
}
}

public static A Aref;
static void Main(string[] args)
{
Aref = new A();
int gen = GC.GetGeneration(Aref);
Aref = null;
GC.Collect(gen, GCCollectionMode.Forced);
Console.WriteLine("GC done");

}

我以为我的 Finalizer 方法会在我调用 GC.Collect 时被调用,但事实并非如此。

谁能解释一下为什么?

最佳答案

GC.Collect() 返回之前不会调用终结器。终结器在单独的线程中运行 - 您可以通过调用 GC.WaitForPendingFinalizers() 来等待它们。

关于c# - 为什么在这个非常简单的场景中我的 .net 析构函数没有被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/606524/

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