Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

GCNotificationStatus, énumération

Fournit des informations sur l'inscription actuelle pour une notification du nettoyage de la mémoire (garbage collection) complet suivant.

Espace de noms :  System
Assembly :  mscorlib (dans mscorlib.dll)

[SerializableAttribute]
public enum GCNotificationStatus

Nom de membreDescription
CanceledL'inscription actuelle a été annulée par l'utilisateur.
FailedLa notification a échoué pour une raison quelconque.
NotApplicableCe résultat peut être causé par l'une des raisons suivantes : il n'y a aucune inscription actuelle pour une notification de nettoyage de la mémoire, le nettoyage de la mémoire simultané est activé ou le temps spécifié pour le paramètre millisecondsTimeout a expiré et aucune notification de nettoyage de la mémoire n'a été obtenue. (Pour plus d'informations sur la désactivation du nettoyage de la mémoire simultané, consultez le paramètre d'exécution <gcConcurrent>.)
SucceededLa notification a réussi et l'inscription n'a pas été annulée.
TimeoutLe temps spécifié par le paramètre millisecondsTimeout pour GC.WaitForFullGCApproach(Int32) ou GC.WaitForFullGCComplete(Int32) s'est écoulé.

Utilisez la méthode RegisterForFullGCNotification pour effectuer une inscription pour une notification de nettoyage de la mémoire complet. Utilisez ensuite la méthode WaitForFullGCApproach ou la méthode WaitForFullGCComplete pour retourner une énumération GCNotificationStatus qui contient l'état de la notification.

L'exemple suivant obtient une énumération GCNotificationStatus à partir de la méthode WaitForFullGCApproach. Si l'énumération retourne Succeeded, elle appelle la méthode OnFullGCApproachNotify personnalisée pour exécuter des actions en réponse au nettoyage de la mémoire complet imminent. Cet exemple de code fait partie d'un exemple plus complet fourni pour la rubrique Notifications de garbage collection.


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

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Pris en charge dans : 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 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft