Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

GC.Collect-Methode

Erzwingt eine sofortige Garbage Collection für alle Generationen.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static void Collect()

Mit dieser Methode kann versucht werden, den gesamten Speicher freizugeben, auf den nicht zugegriffen werden kann. Sie führt eine blockierende Garbage Collection der Generationen aus.

Alle Objekte werden für eine Garbage Collection berücksichtigt, unabhängig davon, wie lange sie sich bereits im Speicher befinden. Objekte, auf die in verwaltetem Code verwiesen wird, werden jedoch nicht freigegeben. Mit dieser Methode wird das System gezwungen, so viel Speicher wie möglich freizugeben.

Ab .NET Framework 4.5.1, können Sie das große Objektheap (LOH) komprimieren, indem Sie die GCSettings.LargeObjectHeapCompactionMode-Eigenschaft auf GCLargeObjectHeapCompactionMode.CompactOnce festlegen, bevor Sie die Collect-Methode aufrufen, wie im folgenden Beispiel veranschaulicht.


GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();      


Im folgenden Beispiel wird veranschaulicht, wie die Collect-Methode verwendet wird, um eine Garbage Collection für alle Speichergenerationen durchzuführen. Der Code generiert eine Reihe nicht verwendeter Objekte und ruft dann die Collect-Methode auf, um diese Objekte aus dem Speicher zu löschen.


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();
      }
   }
}
// The output from the example resembles the following:
//       Memory used before collection:       79,392
//       Memory used after full collection:   52,640


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft