Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

GC.Collect-Methode: (Int32)

 

Veröffentlicht: Oktober 2016

Erzwingt eine sofortige Garbage Collection von Generation 0 (null) bis zu einer angegebenen Generation.

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

public static void Collect(
	int generation
)

Parameter

generation
Type: System.Int32

Die Anzahl der ältesten Generation, für die die Garbage Collection durchgeführt werden soll.

Exception Condition
ArgumentOutOfRangeException

generation ist nicht gültig.

Verwenden Sie diese Methode, um zu versuchen, den Arbeitsspeicher freigeben, die nicht zugegriffen werden kann. Mit dieser Methode garantiert nicht jedoch, dass alle nicht zugegriffen werden kann Speicher in der angegebenen Generation freigegeben wird.

Wenn Alterungszeitraum Objekt implementiert wird, der Garbage Collector erfasst keine Objekte mit einem Generationszahl, ist höher als die angegebene Generation. Wenn Objekt Zahlungsfrist nicht implementiert wird, berücksichtigt der Garbage Collector alle Objekte während der Garbagecollection.

Verwenden der MaxGeneration -Eigenschaft können Sie bestimmen den maximal gültigen Wert für die generation Parameter.

Damit der Garbage Collector alle Objekte unabhängig von ihrer Generation berücksichtigen, verwenden Sie die Version dieser Methode, die keine Parameter akzeptiert. Damit den Garbagecollector Freigeben von Objekten, die auf der Grundlage einer GCCollectionMode festlegen, verwenden Sie die GC.Collect(Int32, GCCollectionMode) methodenüberladung.

Im folgenden Beispiel wird veranschaulicht, wie die Collect Methode, um eine Garbage Collection auf den einzelnen Ebenen von Speicher ausführen. Der Code generiert eine Reihe von nicht verwendeten Objekten und ruft dann die Collect Methode, um sie aus dem Arbeitsspeicher zu bereinigen.

using System;

namespace GCCollectIntExample
{
    class MyGCCollectClass
    {
        private const long maxGarbage = 1000;

        static void Main()
        {
            MyGCCollectClass myGCCol = new MyGCCollectClass();

            // Determine the maximum number of generations the system
	    // garbage collector currently supports.
            Console.WriteLine("The highest generation is {0}", GC.MaxGeneration);

            myGCCol.MakeSomeGarbage();

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

            // Determine the best available approximation of the number 
	    // of bytes currently allocated in managed memory.
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

            // Perform a collection of generation 0 only.
            GC.Collect(0);

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));

            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));

            // Perform a collection of all generations up to and including 2.
            GC.Collect(2);

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));
            Console.Read();
        }

        void MakeSomeGarbage()
        {
            Version vt;

            for(int i = 0; i < maxGarbage; i++)
            {
                // Create objects and release them to fill up memory
		// with unused objects.
                vt = new Version();
            }
        }
    }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Windows Phone Silverlight
Verfügbar seit 7.1
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: