是的,可以通过调用Collect()
方法强制在C#中运行垃圾收集器
这不是一个好习惯,因为这可能会产生较高的性能。Collect()
强制立即进行所有世代的垃圾收集。
Collect(Int32)强制从第0代到指定的世代立即进行垃圾回收。
using System; class MyGCCollectClass{ private const int maxGarbage = 1000; static void Main(){ //将一些对象放在内存中。 MyGCCollectClass.MakeSomeGarbage(); Console.WriteLine("Memory used before collection: {0:N0}", GC.GetTotalMemory(false)); //收集所有世代的记忆。 GC.Collect(); Console.WriteLine("Memory used after full collection: {0:N0}", GC.GetTotalMemory(true)); } static void MakeSomeGarbage(){ Version vt; //创建对象并释放它们以用未使用的对象填充内存。 for(int i = 0; i < maxGarbage; i++){ vt = new Version(); } } }