如何在C#中强制垃圾回收?

是的,可以通过调用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();
      }
   }
}