Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#GC代表?_C#_Events_Delegates_Garbage Collection - Fatal编程技术网

C#GC代表?

C#GC代表?,c#,events,delegates,garbage-collection,C#,Events,Delegates,Garbage Collection,我如何知道GC何时启动?我可以给GC一些诸如“OnStart”和“OnEnd”之类的活动的代表吗?你不能。当您实现IDisposable时,您的类上只有一个Dispose方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱 有关更多信息,请选中:您不能。当您实现IDisposable时,您的类上只有一个Dispose方法。这是为了释放资源。当对象“析构函数”时调用它。垃圾收集本身是一个黑箱 有关更多信息,请选中:如果确实希望在GC发生时创建一个具有终结器的对象,并立即将对它

我如何知道GC何时启动?我可以给GC一些诸如“OnStart”和“OnEnd”之类的活动的代表吗?

你不能。当您实现
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启动时,你的程序停止运行,那么你会怎么做?