Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะบังคับการรวบรวมขยะใน C # ได้อย่างไร


ใช่ เป็นไปได้ที่จะบังคับให้ตัวรวบรวมขยะใน 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();
      }
   }
}