GC.WaitForFullGCComplete Método

Definição

Retorna o status de uma notificação registrada para determinar se uma coleta completa de lixo de bloqueio realizada pelo Common Language Runtime foi concluída.

Sobrecargas

WaitForFullGCComplete()

Retorna o status de uma notificação registrada para determinar se uma coleta completa de lixo de bloqueio realizada pelo Common Language Runtime foi concluída.

WaitForFullGCComplete(Int32)

Retorna, em um período de tempo limite especificado, o status de uma notificação registrada para determinar se uma coleta de lixo de bloqueio completo executada pelo Common Language Runtime foi concluída.

WaitForFullGCComplete(TimeSpan)

Retorna o status de uma notificação registrada sobre se uma coleta de lixo de bloqueio foi concluída. Pode esperar indefinidamente por uma coleção completa.

WaitForFullGCComplete()

Retorna o status de uma notificação registrada para determinar se uma coleta completa de lixo de bloqueio realizada pelo Common Language Runtime foi concluída.

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

Retornos

O status da notificação de coleta de lixo registrada.

Atributos

Exemplos

O exemplo a seguir mostra como usar esse método para determinar se uma coleta de lixo completa foi concluída. Sempre que o status da notificação for Succeeded, o método OnFullGCCompletedNotify de usuário é chamado para executar ações em resposta à coleção concluída. Este exemplo de código faz parte de um exemplo maior fornecido para o tópico Notificações de Coleta de Lixo .

// Check for a notification of a completed collection.
s = GC::WaitForFullGCComplete();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notification 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;
}
// Check for a notification of a completed collection.
GCNotificationStatus status = GC.WaitForFullGCComplete();
if (status == GCNotificationStatus.Succeeded)
{
    Console.WriteLine("GC Notification raised.");
    OnFullGCCompleteEndNotify();
}
else if (status == GCNotificationStatus.Canceled)
{
    Console.WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // Could be a time out.
    Console.WriteLine("GC Notification not applicable.");
    break;
}
// 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
' Check for a notification of a completed collection.
s = GC.WaitForFullGCComplete
If (s = GCNotificationStatus.Succeeded) Then
    Console.WriteLine("GC Notifiction raised.")
    OnFullGCCompleteEndNotify()
ElseIf (s = GCNotificationStatus.Canceled) Then
    Console.WriteLine("GC Notification cancelled.")
    Exit While
Else
    ' Could be a time out.
    Console.WriteLine("GC Notification not applicable.")
    Exit While
End If

Comentários

Use a enumeração GCNotificationStatus retornada por esse método para determinar o status da notificação de coleta de lixo atual que foi registrado usando-se o método RegisterForFullGCNotification. Você também pode usar o WaitForFullGCApproach método para determinar se uma coleta de lixo completa é iminente.

Quando a enumeração retorna Succeeded, você pode realizar tarefas como retomar o trabalho e obter uma contagem de coleção com a CollectionCount propriedade .

Esse método aguarda indefinidamente que uma notificação de coleta de lixo seja obtida. Se você quiser especificar um período de tempo limite para o método retornar se a notificação não puder ser obtida, use a sobrecarga do GC.WaitForFullGCApproach(Int32) método. Se você chamar esse método sem especificar um tempo limite, poderá chamar o CancelFullGCNotification método se estiver esperando mais do que o preferido.

Essa chamada de método deve ser precedida com uma chamada para o WaitForFullGCApproach método para garantir que você tenha tido uma coleta de lixo completa. Chamar esse método sozinho pode produzir resultados indeterminados.

Confira também

Aplica-se a

WaitForFullGCComplete(Int32)

Retorna, em um período de tempo limite especificado, o status de uma notificação registrada para determinar se uma coleta de lixo de bloqueio completo executada pelo Common Language Runtime foi concluída.

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

Parâmetros

millisecondsTimeout
Int32

O período de espera antes que um status de notificação possa ser obtido. Especifique -1 para aguardar indefinidamente.

Retornos

O status da notificação de coleta de lixo registrada.

Atributos

Exceções

millisecondsTimeout deve ser não negativo ou menor ou igual a Int32.MaxValue ou -1.

Comentários

Use a enumeração GCNotificationStatus retornada por esse método para determinar o status da notificação de coleta de lixo atual que foi registrado usando-se o método RegisterForFullGCNotification. Você também pode usar o WaitForFullGCApproach método para determinar se uma coleta de lixo completa é iminente.

Observe que esse método retorna imediatamente sempre que uma notificação de coleta de lixo status é obtida, independentemente do valor especificado por millisecondsTimeout. Se uma notificação de coleta de lixo status não for obtida antes millisecondsTimeout do tempo limite, esse método retornará NotApplicable.

Quando a enumeração retorna Succeeded, você pode realizar tarefas como retomar o trabalho e obter uma contagem de coleção com a CollectionCount propriedade .

Você pode chamar o CancelFullGCNotification método quando não puder aguardar o período de tempo limite decorrido.

Essa chamada de método deve ser precedida com uma chamada para o WaitForFullGCApproach método para garantir que você tenha tido uma coleta de lixo completa. Chamar esse método sozinho pode produzir resultados indeterminados.

Confira também

Aplica-se a

WaitForFullGCComplete(TimeSpan)

Retorna o status de uma notificação registrada sobre se uma coleta de lixo de bloqueio foi concluída. Pode esperar indefinidamente por uma coleção completa.

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

Parâmetros

timeout
TimeSpan

O tempo limite na espera de uma coleção completa

Retornos

O status de uma notificação de GC completa registrada

Aplica-se a