(0) exportieren 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.MaxGeneration-Eigenschaft

Ruft die maximale Anzahl von Generationen ab, die das System gegenwärtig unterstützt.

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

public static int MaxGeneration { get; }

Eigenschaftswert

Typ: System.Int32
Ein Wert zwischen 0 (null) und der Höchstanzahl der unterstützten Generationen.

Die Generationzahl bzw. das Alter eines Objekts ist ein von der Implementierung definiertes relatives Maß für die Lebensdauer eines Objekts. Die zuletzt erstellten Objekte sind in Generation 0 und die ältesten sind Objekte in einer Generierung kleiner oder gleich der Generierung, die durch die MaxGeneration-Eigenschaft zurückgegeben wird.

Der Garbage Collector geht davon aus, dass neuerer Speicher eher für eine Garbage Collection infrage kommt als älterer Speicher. Der Garbage Collector steigert daher seine Leistungsfähigkeit, indem er bei jeder Freigabe von Speicher die Generationszahlen anpasst. Der Wert der MaxGeneration-Eigenschaft kann im Laufe der Zeit wachsen.

Wenn das Altern von Objekten implementiert ist, gibt die MaxGeneration-Eigenschaft die maximale vom System verwendete Generationszahl zurück, andernfalls gibt die Eigenschaft 0 (null) zurück.

Hinweise zur Implementierung

In der vorliegenden Implementierung ist der von der MaxGeneration-Eigenschaft zurückgegebene Wert während der Lebensdauer einer ausgeführten Anwendung garantiert konstant.

Über die MaxGeneration-Eigenschaft kann der größtmögliche Wert ermittelt werden, der angegeben werden kann, wenn die Collect-Methode mit einem Generationsparameter aufgerufen wird.

Im folgenden Beispiel wird veranschaulicht, wie die MaxGeneration-Eigenschaft verwendet wird, um die höchste derzeit verwendete Generationszahl anzuzeigen.


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();
            }
        }
    }
}


.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
Anzeigen:
© 2014 Microsoft