C#GC代表?
我如何知道GC何时启动?我可以给GC一些诸如“OnStart”和“OnEnd”之类的活动的代表吗?你不能。当您实现C#GC代表?,c#,events,delegates,garbage-collection,C#,Events,Delegates,Garbage Collection,我如何知道GC何时启动?我可以给GC一些诸如“OnStart”和“OnEnd”之类的活动的代表吗?你不能。当您实现IDisposable时,您的类上只有一个Dispose方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱 有关更多信息,请选中:您不能。当您实现IDisposable时,您的类上只有一个Dispose方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱 有关更多信息,请选中:如果确实希望在GC发生时创建一个具有终结器的对象,并立即将对它
IDisposable
时,您的类上只有一个Dispose
方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱
有关更多信息,请选中:您不能。当您实现
IDisposable
时,您的类上只有一个Dispose
方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱
有关更多信息,请选中:如果确实希望在GC发生时创建一个具有终结器的对象,并立即将对它的引用设置为null。这样,对象仍将生成0,并且在下次GC运行时很可能会被垃圾收集。GC完成后,您的终结器可能会被调用,因此您知道GC已经发生 请注意,我不建议这样做,行为也不能保证
如果出于好奇和教育目的,您只想知道GC何时运行,您可以使用clr内存探查器工具,该工具通常会显示GC发生的时间和频率以及收集的对象。如果您真的想知道GC发生的时间,您可以创建一个具有终结器的对象,并立即设置引用将其设置为null。这样,对象仍将生成0,并且在下次GC运行时很可能会被垃圾收集。GC完成后,您的终结器可能会被调用,因此您知道GC已经发生 请注意,我不建议这样做,行为也不能保证
如果您只是想知道GC何时运行以满足好奇心和教育目的,您可以使用clr内存探查器工具,该工具通常会显示GC发生的时间和频率以及收集的对象。在.NET 4中,您可以在.NET 4中使用,如果您想/需要,可以使用,你的想法很可能是一个糟糕和/或疯狂的想法。你想做什么?你的程序在GC启动时停止运行,那么你会怎么做?如果你想/需要这样做,你的想法很可能是一个糟糕和/或疯狂的想法。你想做什么?当GC启动时,你的程序停止运行,那么你会怎么做?