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


是的,通过调用 Collect() 方法可以强制 C# 中的垃圾回收器运行

这不算什么好习惯,因为它可能会造成性能开销。Collect() 会强制对所有世代进行立即垃圾回收。

Collect(Int32)强制从第 0 世代进行垃圾回收到指定的某个世代。

示例

 现场演示

using System;
class MyGCCollectClass{
   private const int maxGarbage = 1000;
   static void Main(){
      // Put some objects in memory.
      MyGCCollectClass.MakeSomeGarbage();
      Console.WriteLine("Memory used before collection: {0:N0}",
      GC.GetTotalMemory(false));
      // Collect all generations of memory.
      GC.Collect();
      Console.WriteLine("Memory used after full collection: {0:N0}",
      GC.GetTotalMemory(true));
   }
   static void MakeSomeGarbage(){
      Version vt;
      // Create objects and release them to fill up memory with unused objects.
      for(int i = 0; i < maxGarbage; i++){
         vt = new Version();
      }
   }
}

更新于:19-8-2020

2000+ 浏览量

启动您的 职业

完成课程获得认证

开始
广告