GC.WaitForFullGCApproach Méthode
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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() |
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. |
- 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 à
.NET 9 et autres versions
Produit | Versions |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
- 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 à
.NET 9 et autres versions
Produit | Versions |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
- 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 à
.NET 9 et autres versions
Produit | Versions |
---|---|
.NET | 7, 8, 9 |
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :