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.GetGeneration-Methode: (Object)

 

Veröffentlicht: August 2016

Gibt die aktuelle Generationszahl des angegebenen Objekts zurück.

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

public static int GetGeneration(
	object obj
)

Parameter

obj
Type: System.Object

Das Objekt, dessen Generationsdaten abgerufen werden.

Rückgabewert

Type: System.Int32

Die aktuelle Generationszahl von obj.

Mit dieser Methode können Sie um das Alter eines Objekts zu bestimmen, und anhand dieser Informationen mit der Collect Methode zum Erzwingen der Garbage Collector zum Sammeln von Objekten in der gleichen Generation. Verwenden Sie diese Methode beispielsweise, wenn Sie einen Satz von Objekten, die als eine Gruppe erstellt werden und, die gleichzeitig zugegriffen werden.

Im folgenden Beispiel wird veranschaulicht, wie die GetGeneration Methode, um das Alter eines Objekts zu bestimmen. Das Beispiel führt dann Garbage Collections Speicher bereinigen und vergleichen die vor und buchen Auflistung Arbeitsspeicher Summen in der Konsole.

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 10
.NET Framework
Verfügbar seit 1.1
Windows Phone Silverlight
Verfügbar seit 7.1
Zurück zum Anfang
Anzeigen: