如何强制垃圾收集器运行?

面试官今天问我这个问题有答案吗?

System.GC.Collect()强制垃圾收集器运行。 这是不推荐的,但可以在情况发生时使用。

不build议显式调用gc,但是如果你打电话

 GC.Collect(); GC.WaitForPendingFinalizers(); 

它将在您的代码中明确调用GC,不要忘记调用GC.WaitForPendingFinalizers();GC.Collect()

 GC.Collect() 

来自MDSN ,

使用此方法尝试回收所有无法访问的内存。

所有对象,无论他们在记忆中多久,都被考虑收集; 但是,托pipe代码中引用的对象不会收集。 使用此方法强制系统尝试回收可用内存的最大数量。

GC.Collect();

请记住,虽然,垃圾收集器可能并不总是清理你所期望的…

GC.Collect()

你不想强制垃圾收集器运行。

但是,如果你曾经这样做(当然是纯粹的学术演习):

 GC.Collect() 

我认为.Net框架自动执行此操作,以防万一。 首先,确保select要擦除的内容,然后调用垃圾收集器:

 randomClass object1 = new randomClass ... ... // Give a null value to the code you want to delete object1 = null; // Then call the garbage collector to erase what you gave the null value GC.Collect(); 

我想就是这样..希望我帮助别人。

 GC.Collect(); 

我们通过垃圾收集器的收集方法调用垃圾收集器。 大多数情况下不需要调用垃圾回收器,因为它是由不同的线程在后台进程中连续运行的