Partager via


GC.WaitForFullGCApproach Méthode

Définition

Retourne l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

Surcharges

WaitForFullGCApproach()

Retourne l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

WaitForFullGCApproach(Int32)

Retourne, dans le délai d'attente spécifié, l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

WaitForFullGCApproach(TimeSpan)

Retourne, dans le délai d'attente spécifié, l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

WaitForFullGCApproach()

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

Retourne l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

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

Retours

État de la notification de garbage collection inscrite.

Attributs

Exemples

L’exemple suivant montre comment utiliser cette méthode pour déterminer si un garbage collection complet et bloquant approche. Chaque fois que le status de la notification est Succeeded, la méthode OnFullGCApproachNotify utilisateur est appelée pour effectuer des actions en réponse à la collection qui approche. Cet exemple de code fait partie d’un exemple plus large fourni pour la rubrique Garbage Collection Notifications .

// 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

Remarques

Utilisez l’énumération GCNotificationStatus retournée par cette méthode pour déterminer la status de la notification de garbage collection actuelle qui a été inscrite à l’aide de la RegisterForFullGCNotification méthode . Vous pouvez également utiliser la WaitForFullGCComplete méthode pour déterminer si le garbage collection complet est terminé.

Lorsque l’énumération retourne Succeeded, vous pouvez effectuer des tâches telles que la prévention de l’allocation d’objets supplémentaires et l’induction d’une collection vous-même avec la Collect méthode . Notez que la notification ne garantit pas qu’un garbage collection complet se produira, mais que les conditions ont atteint le seuil favorable à un garbage collection complet.

Cette méthode attend indéfiniment qu’une notification de garbage collection soit obtenue. Si vous souhaitez spécifier un délai d’expiration pour la méthode à retourner si la notification ne peut pas être obtenue, utilisez la surcharge de GC.WaitForFullGCApproach(Int32) méthode. Si vous appelez cette méthode sans spécifier de délai d’attente, vous pouvez appeler la CancelFullGCNotification méthode si vous attendez plus longtemps que vous le souhaitez.

Vous devez suivre cette méthode avec un appel à la WaitForFullGCComplete méthode pour vous assurer que vous avez eu un garbage collection complet. L’appel de cette méthode à lui seul entraîne des résultats indéterminés.

Voir aussi

S’applique à

WaitForFullGCApproach(Int32)

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

Retourne, dans le délai d'attente spécifié, l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

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

Paramètres

millisecondsTimeout
Int32

Temps à attendre avant qu'un état de notification puisse être obtenu. Spécifiez -1 pour attendre indéfiniment.

Retours

État de la notification de garbage collection inscrite.

Attributs

Exceptions

millisecondsTimeout doit être non négatif ou inférieur ou égal à Int32.MaxValue ou -1.

Remarques

Utilisez l’énumération GCNotificationStatus retournée par cette méthode pour déterminer la status de la notification de garbage collection actuelle qui a été inscrite à l’aide de la RegisterForFullGCNotification méthode . Vous pouvez également utiliser la WaitForFullGCComplete méthode pour déterminer si le garbage collection complet est terminé.

Notez que cette méthode retourne immédiatement chaque fois qu’une notification de garbage collection status est obtenue, quelle que soit la valeur spécifiée par millisecondsTimeout. Si une notification de garbage collection status n’est pas obtenue avant millisecondsTimeout expiration, cette méthode retourne NotApplicable.

Lorsque l’énumération retourne Succeeded, vous pouvez effectuer des tâches telles que la prévention de l’allocation d’objets supplémentaires et l’induction d’une collection vous-même avec la Collect méthode . Notez que la notification ne garantit pas qu’un garbage collection complet se produira, mais que les conditions ont atteint le seuil favorable à un garbage collection complet.

Vous pouvez appeler la CancelFullGCNotification méthode lorsque vous ne pouvez pas attendre l’expiration du délai d’attente.

Vous devez suivre cette méthode avec un appel à la WaitForFullGCComplete méthode pour vous assurer que vous avez eu un garbage collection complet. L’appel de cette méthode à lui seul entraîne des résultats indéterminés.

Voir aussi

S’applique à

WaitForFullGCApproach(TimeSpan)

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

Retourne, dans le délai d'attente spécifié, l'état d'une notification inscrite pour déterminer si un garbage collection de blocage complet par le Common Language Runtime est imminent.

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

Paramètres

timeout
TimeSpan

Délai d’attente d’une approche GC complète

Retours

La status d’une notification GC complète enregistrée

S’applique à