Esporta (0) Stampa
Espandi tutto
Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Enumerazione GCNotificationStatus

Fornisce le informazioni sulla registrazione corrente per la notifica della successiva Garbage Collection completa.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
public enum GCNotificationStatus
Nome membroDescrizione
CanceledLa registrazione corrente è stata annullata dall'utente.
FailedLa notifica non riesce a qualsiasi motivo.
NotApplicablequesto risultato può essere causato da quanto segue: non esiste alcuna registrazione corrente per una notifica di Garbage Collection, il Garbage Collection in modalità simultanea è abilitato, o l'ora è specificato per millisecondsTimeout il parametro è scaduto e alcuna notifica di Garbage Collection è stata recuperata. (Vedere <gcConcurrent> impostazione runtime per informazioni su come disabilitare la modalità simultanea.)
SucceededLa notifica corrente e la registrazione non è stata annullata.
TimeoutIl tempo specificato da millisecondsTimeout parametro per l'uno o l'altro GC.WaitForFullGCApproach(Int32) o GC.WaitForFullGCComplete(Int32) è trascorso.

utilizzare RegisterForFullGCNotification metodo di registrazione per una notifica completa di Garbage Collection. Utilizzare quindi WaitForFullGCApproach metodo o WaitForFullGCComplete metodo per restituire un oggetto GCNotificationStatus enumerazione che contiene lo stato della notifica.

Nell'esempio seguente viene ottenuto un oggetto GCNotificationStatus enumerazione da WaitForFullGCApproach metodo. Se restituisce un valore di enumerazione Succeeded, chiama il metodo personalizzato OnFullGCApproachNotify per eseguire azioni in risposta a Garbage Collection completo di avvicinamento. Questo esempio di codice fa parte di un esempio più esaustivo fornito Notifiche di Garbage Collection argomento.


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

Supportato in: 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)
Grazie per i commenti inviati.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.