GC.WaitForFullGCApproach Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert de status van een geregistreerde melding om te bepalen of een volledige garbagecollection door de algemene taalruntime binnenkort wordt geblokkeerd.
Overloads
| Name | Description |
|---|---|
| WaitForFullGCApproach() |
Retourneert de status van een geregistreerde melding om te bepalen of een volledige garbagecollection door de algemene taalruntime binnenkort wordt geblokkeerd. |
| WaitForFullGCApproach(Int32) |
Retourneert, in een opgegeven time-outperiode, de status van een geregistreerde melding om te bepalen of een volledige garbagecollection door de algemene taalruntime binnenkort wordt geblokkeerd. |
WaitForFullGCApproach()
Retourneert de status van een geregistreerde melding om te bepalen of een volledige garbagecollection door de algemene taalruntime binnenkort wordt geblokkeerd.
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
Retouren
De status van de geregistreerde garbagecollectionmelding.
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u deze methode gebruikt om te bepalen of een volledige, blokkerende garbagecollection nadert. Wanneer de status van de melding is Succeeded, wordt de gebruikersmethode OnFullGCApproachNotify aangeroepen om acties uit te voeren als reactie op de naderende verzameling. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor het onderwerp Garbagecollection-meldingen .
// 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
Opmerkingen
Gebruik de GCNotificationStatus opsomming die door deze methode wordt geretourneerd om de status te bepalen van de huidige garbagecollectionmelding die is geregistreerd met behulp van de RegisterForFullGCNotification methode. U kunt ook de WaitForFullGCComplete methode gebruiken om te bepalen of de volledige garbagecollection is voltooid.
Wanneer de opsomming wordt geretourneerd Succeeded, kunt u taken uitvoeren, zoals voorkomen dat extra objecten worden toegewezen en een verzameling zelf met de Collect methode inleiden. Houd er rekening mee dat de melding niet garandeert dat een volledige garbagecollection plaatsvindt, alleen dat de voorwaarden de drempelwaarde hebben bereikt die gunstig zijn voor een volledige garbagecollection.
Deze methode wacht voor onbepaalde tijd totdat een garbagecollectionmelding is verkregen. Als u een time-outperiode wilt opgeven voor de methode die moet worden geretourneerd als de melding niet kan worden verkregen, gebruikt u de overbelasting van de GC.WaitForFullGCApproach(Int32) methode. Als u deze methode aanroept zonder een time-out op te geven, kunt u de CancelFullGCNotification methode aanroepen als u langer wacht dan gewenst.
Volg deze methode met een aanroep naar de WaitForFullGCComplete methode om ervoor te zorgen dat u over een volledige garbagecollection beschikt. Het aanroepen van deze methode veroorzaakt alleen onbepaalde resultaten.
Zie ook
Van toepassing op
WaitForFullGCApproach(Int32)
Retourneert, in een opgegeven time-outperiode, de status van een geregistreerde melding om te bepalen of een volledige garbagecollection door de algemene taalruntime binnenkort wordt geblokkeerd.
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
Parameters
- millisecondsTimeout
- Int32
De tijdsduur die moet worden gewacht voordat een meldingsstatus kan worden verkregen. Geef -1 op om voor onbepaalde tijd te wachten.
Retouren
De status van de geregistreerde garbagecollectionmelding.
- Kenmerken
Uitzonderingen
millisecondsTimeout moet niet-negatief of kleiner zijn dan of gelijk zijn aan Int32.MaxValue of -1.
Opmerkingen
Gebruik de GCNotificationStatus opsomming die door deze methode wordt geretourneerd om de status te bepalen van de huidige garbagecollectionmelding die is geregistreerd met behulp van de RegisterForFullGCNotification methode. U kunt ook de WaitForFullGCComplete methode gebruiken om te bepalen of de volledige garbagecollection is voltooid.
Houd er rekening mee dat deze methode onmiddellijk wordt geretourneerd wanneer de status van een garbagecollectionmelding wordt verkregen, ongeacht de waarde die is opgegeven door millisecondsTimeout. Als er geen meldingsstatus voor garbagecollection wordt verkregen voordat millisecondsTimeout er een time-out optreedt, retourneert NotApplicabledeze methode.
Wanneer de opsomming wordt geretourneerd Succeeded, kunt u taken uitvoeren, zoals voorkomen dat extra objecten worden toegewezen en een verzameling zelf met de Collect methode inleiden. Houd er rekening mee dat de melding niet garandeert dat een volledige garbagecollection plaatsvindt, alleen dat de voorwaarden de drempelwaarde hebben bereikt die gunstig zijn voor een volledige garbagecollection.
U kunt de CancelFullGCNotification methode aanroepen wanneer u niet kunt wachten tot de time-outperiode is verstreken.
Volg deze methode met een aanroep naar de WaitForFullGCComplete methode om ervoor te zorgen dat u over een volledige garbagecollection beschikt. Het aanroepen van deze methode veroorzaakt alleen onbepaalde resultaten.