Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Enumeración GCNotificationStatus

 

Proporciona información sobre el registro actual para la notificación de la siguiente recolección completa de elementos no utilizados.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
public enum GCNotificationStatus

Nombre de miembroDescripción
Canceled

El usuario canceló el registro actual.

Failed

Error en la notificación por algún motivo.

NotApplicable

Este resultado puede deberse a lo siguiente: no hay ningún registro actual para una notificación de recolección de elementos no utilizados, la recolección de elementos no utilizados simultánea está habilitada o el tiempo especificado para el parámetro millisecondsTimeout ha expirado y se ha obtenido ninguna notificación de recolección de elementos no utilizados. (Consulte la configuración en tiempo de ejecución <gcConcurrent> para obtener información sobre cómo deshabilitar la recolección de elementos no utilizados simultánea).

Succeeded

La notificación se realizó correctamente y no se canceló el registro.

Timeout

La hora especificada por el parámetro millisecondsTimeout para GC.WaitForFullGCApproach(Int32) o GC.WaitForFullGCComplete(Int32) ha transcurrido.

Use the M:System.GC.RegisterForFullGCNotification(System.Int32,System.Int32) method to register for a full garbage collection notification. Then use the M:System.GC.WaitForFullGCApproach method or the M:System.GC.WaitForFullGCComplete method to return a T:System.GCNotificationStatus enumeration that contains the status of the notification.

The following example obtains a T:System.GCNotificationStatus enumeration from the M:System.GC.WaitForFullGCApproach method. If the enumeration returns F:System.GCNotificationStatus.Succeeded, it calls the custom method OnFullGCApproachNotify to perform actions in response to the approaching full garbage collection. This code example is part of a larger example provided for Garbage Collection Notifications topic.

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
Disponible desde 2.0
Volver al principio
Mostrar: