GC.WaitForFullGCApproach Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Devolve o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente.
Sobrecargas
| Name | Description |
|---|---|
| WaitForFullGCApproach() |
Devolve o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente. |
| WaitForFullGCApproach(Int32) |
Devolve, num período de tempo limite especificado, o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente. |
| WaitForFullGCApproach(TimeSpan) |
Devolve, num período de tempo limite especificado, o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente. |
WaitForFullGCApproach()
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Devolve o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente.
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
Devoluções
O estado da notificação registada de recolha de lixo.
- Atributos
Exemplos
O exemplo seguinte mostra como usar este método para determinar se se aproxima uma recolha de lixo completa e bloqueante. Sempre que o estado da notificação é Succeeded, o método OnFullGCApproachNotify do utilizador é chamado para realizar ações em resposta à recolha que se aproxima. Este exemplo de código faz parte de um exemplo mais amplo fornecido para o tópico de Notificações de Recolha de Lixo .
// 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
Observações
Use a GCNotificationStatus enumeração devolvida por este método para determinar o estado da notificação atual de recolha de lixo que foi registada através do RegisterForFullGCNotification método. Também pode usar o WaitForFullGCComplete método para determinar se a recolha completa do lixo foi concluída.
Quando a enumeração devolver Succeeded, pode realizar tarefas como impedir que objetos adicionais sejam alocados e induzir uma coleção por si próprio com o Collect método. Note-se que a notificação não garante que ocorra uma recolha total de lixo, apenas que as condições atingiram o limiar favorável para que ocorra uma recolha total de lixo.
Este método espera indefinidamente pela notificação de recolha do lixo. Se quiser especificar um período de tempo para o método regressar caso a notificação não possa ser obtida, use o GC.WaitForFullGCApproach(Int32) método overload. Se chamar este método sem especificar um time-out, pode chamá-lo CancelFullGCNotification se estiver a esperar mais do que o preferido.
Deve seguir este método com uma chamada para garantir WaitForFullGCComplete que fez uma recolha de lixo completa. Chamar este método sozinho causa resultados indeterminados.
Ver também
Aplica-se a
WaitForFullGCApproach(Int32)
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
- Origem:
- GC.CoreCLR.cs
Devolve, num período de tempo limite especificado, o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente.
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
O tempo de espera antes de poder obter o estado da notificação. Especifique -1 esperar indefinidamente.
Devoluções
O estado da notificação registada de recolha de lixo.
- Atributos
Exceções
millisecondsTimeout deve ser ou não negativo ou menor ou igual a Int32.MaxValue ou -1.
Observações
Use a GCNotificationStatus enumeração devolvida por este método para determinar o estado da notificação atual de recolha de lixo que foi registada através do RegisterForFullGCNotification método. Também pode usar o WaitForFullGCComplete método para determinar se a recolha completa do lixo foi concluída.
Note que este método retorna imediatamente sempre que o estado de notificação de recolha de lixo é obtido, independentemente do valor especificado por millisecondsTimeout. Se o estado da notificação de recolha de lixo não for obtido antes millisecondsTimeout do timeout timetime, este método devolve NotApplicable.
Quando a enumeração devolver Succeeded, pode realizar tarefas como impedir que objetos adicionais sejam alocados e induzir uma coleção por si próprio com o Collect método. Note-se que a notificação não garante que ocorra uma recolha total de lixo, apenas que as condições atingiram o limiar favorável para que ocorra uma recolha total de lixo.
Pode chamar o CancelFullGCNotification método quando não conseguir esperar que o período de tempo expire.
Deve seguir este método com uma chamada para garantir WaitForFullGCComplete que fez uma recolha de lixo completa. Chamar este método sozinho causa resultados indeterminados.
Ver também
Aplica-se a
WaitForFullGCApproach(TimeSpan)
- Origem:
- GC.cs
- Origem:
- GC.cs
- Origem:
- GC.cs
- Origem:
- GC.cs
- Origem:
- GC.cs
Devolve, num período de tempo limite especificado, o estado de uma notificação registada para determinar se uma recolha de lixo completa e bloqueante pelo runtime de linguagem comum é iminente.
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
A pausa para esperar por um GC completo aproxima-se
Devoluções
O estado de uma notificação completa de GC registada