如何强制垃圾收集器运行?
面试官今天问我这个问题有答案吗?
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();
我们通过垃圾收集器的收集方法调用垃圾收集器。 大多数情况下不需要调用垃圾回收器,因为它是由不同的线程在后台进程中连续运行的