Compartir a través de


GC.WaitForFullGCApproach Método

Definición

Devuelve el estado de una notificación registrada para determinar si es inminente una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime.

Sobrecargas

WaitForFullGCApproach()

Devuelve el estado de una notificación registrada para determinar si es inminente una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime.

WaitForFullGCApproach(Int32)

Devuelve el estado de una notificación registrada, en un tiempo de espera especificado, para determinar si una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime es inminente.

WaitForFullGCApproach(TimeSpan)

Devuelve el estado de una notificación registrada, en un tiempo de espera especificado, para determinar si una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime es inminente.

WaitForFullGCApproach()

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Devuelve el estado de una notificación registrada para determinar si es inminente una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime.

public:
 static GCNotificationStatus WaitForFullGCApproach();
public static GCNotificationStatus WaitForFullGCApproach ();
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCApproach ();
static member WaitForFullGCApproach : unit -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCApproach : unit -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach () As GCNotificationStatus

Devoluciones

El estado de la notificación registrada de recolección de elementos no utilizados.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo usar este método para determinar si se aproxima una recolección de elementos no utilizados completa y de bloqueo. Siempre que el estado de la notificación sea Succeeded, se llama al método OnFullGCApproachNotify user para realizar acciones en respuesta a la colección que se aproxima. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el tema Notificaciones de recolección de elementos no utilizados.

// Check for a notification of an approaching collection.
GCNotificationStatus s = GC::WaitForFullGCApproach();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notifiction 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 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 an approaching collection.
match GC.WaitForFullGCApproach() with
| GCNotificationStatus.Succeeded ->
    printfn "GC Notification raised."
    onFullGCApproachNotify ()
    // Check for a notification of a completed collection.
    match GC.WaitForFullGCComplete() with
    | GCNotificationStatus.Succeeded ->
        printfn "GC Notification raised."
        onFullGCCompleteEndNotify ()
    | GCNotificationStatus.Canceled ->
        printfn "GC Notification cancelled."
        broken <- true
    | _ ->
        // Could be a time out.
        printfn "GC Notification not applicable."
        broken <- true
| GCNotificationStatus.Canceled ->
    printfn "GC Notification cancelled."
    broken <- true
| _ ->
    // This can occur if a timeout period
    // is specified for WaitForFullGCApproach(Timeout)
    // or WaitForFullGCComplete(Timeout)
    // and the time out period has elapsed.
    printfn "GC Notification not applicable."
    broken <- true
' Check for a notification of an approaching collection.
Dim s As GCNotificationStatus = GC.WaitForFullGCApproach
If (s = GCNotificationStatus.Succeeded) Then
    Console.WriteLine("GC Notification raised.")
    OnFullGCApproachNotify()
ElseIf (s = GCNotificationStatus.Canceled) Then
    Console.WriteLine("GC Notification cancelled.")
    Exit While
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.")
    Exit While
End If

Comentarios

Use la GCNotificationStatus enumeración devuelta por este método para determinar el estado de la notificación de recolección de elementos no utilizados actual que se registró mediante el RegisterForFullGCNotification método . También puede usar el WaitForFullGCComplete método para determinar si se ha completado la recolección completa de elementos no utilizados.

Cuando la enumeración devuelve Succeeded, puede realizar tareas como impedir que se asignen objetos adicionales e inducir una colección usted mismo con el Collect método . Tenga en cuenta que la notificación no garantiza que se produzca una recolección completa de elementos no utilizados, solo que las condiciones han alcanzado el umbral favorable para que se produzca una recolección completa de elementos no utilizados.

Este método espera indefinidamente para que se obtenga una notificación de recolección de elementos no utilizados. Si desea especificar un período de tiempo de espera para que el método devuelva si no se puede obtener la notificación, use la sobrecarga del GC.WaitForFullGCApproach(Int32) método . Si llama a este método sin especificar un tiempo de espera, puede llamar al CancelFullGCNotification método si espera más tiempo de lo preferido.

Debe seguir este método con una llamada al WaitForFullGCComplete método para asegurarse de que ha tenido una recolección completa de elementos no utilizados. Llamar a este método por sí solo provoca resultados indeterminados.

Consulte también

Se aplica a

WaitForFullGCApproach(Int32)

Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs
Source:
GC.CoreCLR.cs

Devuelve el estado de una notificación registrada, en un tiempo de espera especificado, para determinar si una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime es inminente.

public:
 static GCNotificationStatus WaitForFullGCApproach(int millisecondsTimeout);
public static GCNotificationStatus WaitForFullGCApproach (int millisecondsTimeout);
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCApproach (int millisecondsTimeout);
static member WaitForFullGCApproach : int -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCApproach : int -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach (millisecondsTimeout As Integer) As GCNotificationStatus

Parámetros

millisecondsTimeout
Int32

Cantidad de tiempo que hay que esperar para obtener un estado de notificación. Especifique -1 para esperar indefinidamente.

Devoluciones

El estado de la notificación registrada de recolección de elementos no utilizados.

Atributos

Excepciones

millisecondsTimeout debe ser no negativo o menor o igual que Int32.MaxValue o -1.

Comentarios

Use la GCNotificationStatus enumeración devuelta por este método para determinar el estado de la notificación de recolección de elementos no utilizados actual que se registró mediante el RegisterForFullGCNotification método . También puede usar el WaitForFullGCComplete método para determinar si se ha completado la recolección completa de elementos no utilizados.

Tenga en cuenta que este método devuelve inmediatamente cada vez que se obtiene un estado de notificación de recolección de elementos no utilizados, independientemente del valor especificado por millisecondsTimeout. Si no se obtiene un estado de notificación de recolección de elementos no utilizados antes millisecondsTimeout de que se agote el tiempo de espera, este método devuelve NotApplicable.

Cuando la enumeración devuelve Succeeded, puede realizar tareas como impedir que se asignen objetos adicionales e inducir una colección usted mismo con el Collect método . Tenga en cuenta que la notificación no garantiza que se produzca una recolección completa de elementos no utilizados, solo que las condiciones han alcanzado el umbral favorable para que se produzca una recolección completa de elementos no utilizados.

Puede llamar al CancelFullGCNotification método cuando no puede esperar a que transcurre el período de tiempo de espera.

Debe seguir este método con una llamada al WaitForFullGCComplete método para asegurarse de que ha tenido una recolección completa de elementos no utilizados. Llamar a este método por sí solo provoca resultados indeterminados.

Consulte también

Se aplica a

WaitForFullGCApproach(TimeSpan)

Source:
GC.cs
Source:
GC.cs
Source:
GC.cs

Devuelve el estado de una notificación registrada, en un tiempo de espera especificado, para determinar si una recolección completa de elementos no utilizados bloqueada por parte de Common Language Runtime es inminente.

public:
 static GCNotificationStatus WaitForFullGCApproach(TimeSpan timeout);
public static GCNotificationStatus WaitForFullGCApproach (TimeSpan timeout);
static member WaitForFullGCApproach : TimeSpan -> GCNotificationStatus
Public Shared Function WaitForFullGCApproach (timeout As TimeSpan) As GCNotificationStatus

Parámetros

timeout
TimeSpan

Tiempo de espera en espera de un enfoque completo de GC

Devoluciones

El estado de una notificación de GC completa registrada

Se aplica a