War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

GCNotificationStatus-Enumeration

Stellt Informationen zur aktuellen Registrierung für eine Benachrichtigung über die nächste vollständige Garbage Collection bereit.

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

[SerializableAttribute]
public enum GCNotificationStatus

MembernameBeschreibung
CanceledDie aktuelle Registrierung wurde vom Benutzer abgebrochen.
FailedBei der Benachrichtigung trat aus unbestimmtem Grund ein Fehler auf.
NotApplicableMögliche Gründe für dieses Ergebnis: Es ist keine aktuelle Registrierung für eine Garbage Collection-Benachrichtigung vorhanden, die gleichzeitige Garbage Collection ist aktiviert, oder die für den millisecondsTimeout-Parameter angegebene Zeit ist abgelaufen, ohne dass eine Garbage Collection-Benachrichtigung abgerufen wurde. (Informationen zum Deaktivieren der gleichzeitigen Garbage Collection finden Sie unter der <gcConcurrent>-Laufzeiteinstellung.)
SucceededDie Benachrichtigung war erfolgreich, und die Registrierung wurde nicht abgebrochen.
TimeoutDie vom millisecondsTimeout-Parameter für GC.WaitForFullGCApproach(Int32) oder GC.WaitForFullGCComplete(Int32) angegebene Zeit ist verstrichen.

Verwenden Sie die RegisterForFullGCNotification-Methode, um die Registrierung für eine Benachrichtigung über eine vollständige Garbage Collection auszuführen. Geben Sie anschließend mit der WaitForFullGCApproach-Methode oder der WaitForFullGCComplete-Methode eine GCNotificationStatus-Enumeration zurück, die den Status der Benachrichtigung enthält.

Im folgenden Beispiel wird eine GCNotificationStatus-Enumeration aus der WaitForFullGCApproach-Methode abgerufen. Wenn die Enumeration Succeeded zurückgibt, ruft sie die benutzerdefinierte OnFullGCApproachNotify-Methode auf, um Aktionen als Reaktion auf die bevorstehende vollständige Garbage Collection auszuführen. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels, das für das Thema Garbage Collection-Benachrichtigungen bereitgestellt wird.


public static void WaitForFullGCProc()
{
    while (true)
    {
        // CheckForNotify is set to true and false in Main.
        while (checkForNotify)
        {
            // Check for a notification of an approaching collection.
            GCNotificationStatus s = GC.WaitForFullGCApproach();
            if (s == GCNotificationStatus.Succeeded)
            {
                Console.WriteLine("GC Notification raised.");
                OnFullGCApproachNotify();
            }
            else if (s == GCNotificationStatus.Canceled)
            {
                Console.WriteLine("GC Notification cancelled.");
                break;
            }
            else
            {
                // This can occur if a timeout period
                // is specified for WaitForFullGCApproach(Timeout) 
                // or WaitForFullGCComplete(Timeout)  
                // and the time out period has elapsed. 
                Console.WriteLine("GC Notification not applicable.");
                break;
            }

            // Check for a notification of a completed collection.
            s = GC.WaitForFullGCComplete();
            if (s == GCNotificationStatus.Succeeded)
            {
                Console.WriteLine("GC Notifiction raised.");
                OnFullGCCompleteEndNotify();
            }
            else if (s == GCNotificationStatus.Canceled)
            {
                Console.WriteLine("GC Notification cancelled.");
                break;
            }
            else
            {
                // Could be a time out.
                Console.WriteLine("GC Notification not applicable.");
                break;
            }
        }


        Thread.Sleep(500);
        // FinalExit is set to true right before  
        // the main thread cancelled notification.
        if (finalExit)
        {
            break;
        }
    }

}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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:
© 2015 Microsoft