GC.WaitForFullGCComplete Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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()
- 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 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)
- 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 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)
- 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 na espera de uma coleção completa
Retornos
O status de uma notificação de GC completa registrada