Compartilhar via


GC.WaitForFullGCComplete Método

Definição

Retorna o status de uma notificação registrada para determinar se uma coleta de lixo completa e de bloqueio pelo common language runtime foi concluída.

Sobrecargas

Nome Description
WaitForFullGCComplete()

Retorna o status de uma notificação registrada para determinar se uma coleta de lixo completa e de bloqueio 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 completa e de bloqueio por linguagem comum o runtime foi concluído.

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()

Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs

Retorna o status de uma notificação registrada para determinar se uma coleta de lixo completa e de bloqueio 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 é Succeeded, o método OnFullGCCompletedNotify do 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.
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 GCNotificationStatus enumeração retornada por esse método para determinar o status da notificação de coleta de lixo atual que foi registrada usando o RegisterForFullGCNotification método. 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 o CollectionCount(Int32) método.

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 aguardando mais tempo 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 uma coleta de lixo completa. Chamar esse método sozinho pode produzir resultados indeterminados.

Confira também

Aplica-se a

WaitForFullGCComplete(Int32)

Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs
Origem:
GC.CoreCLR.cs

Retorna, em um período de tempo limite especificado, o status de uma notificação registrada para determinar se uma coleta de lixo completa e de bloqueio por linguagem comum o runtime foi concluído.

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 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 GCNotificationStatus enumeração retornada por esse método para determinar o status da notificação de coleta de lixo atual que foi registrada usando o RegisterForFullGCNotification método. 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 um status de notificação de coleta de lixo é obtido, independentemente do valor especificado por millisecondsTimeout. Se um status de notificação de coleta de lixo não for obtido 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(Int32) propriedade.

Você pode chamar o CancelFullGCNotification método quando não pode esperar o período de tempo limite passar.

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

Confira também

Aplica-se a

WaitForFullGCComplete(TimeSpan)

Origem:
GC.cs
Origem:
GC.cs
Origem:
GC.cs
Origem:
GC.cs
Origem:
GC.cs

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 em espera por uma coleção completa

Retornos

O status de uma notificação GC completa registrada

Aplica-se a