GC.WaitForFullGCApproach Methode

Definitie

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.

Zie ook

Van toepassing op