GC.WaitForFullGCApproach Metod

Definition

Returnerar statusen för ett registrerat meddelande för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

Överlagringar

Name Description
WaitForFullGCApproach()

Returnerar statusen för ett registrerat meddelande för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

WaitForFullGCApproach(Int32)

Returnerar statusen för ett registrerat meddelande under en angiven tidsgräns för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

WaitForFullGCApproach(TimeSpan)

Returnerar statusen för ett registrerat meddelande under en angiven tidsgräns för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

WaitForFullGCApproach()

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Returnerar statusen för ett registrerat meddelande för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

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

Returer

Status för det registrerade skräpinsamlingsmeddelandet.

Attribut

Exempel

I följande exempel visas hur du använder den här metoden för att avgöra om en fullständig, blockerande skräpinsamling närmar sig. När statusen för meddelandet är Succeededanropas användarmetoden OnFullGCApproachNotify för att utföra åtgärder som svar på den annalkande samlingen. Det här kodexemplet är en del av ett större exempel för avsnittet Skräpinsamlingsaviseringar .

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

Kommentarer

Använd uppräkningen GCNotificationStatus som returneras av den här metoden för att fastställa statusen för det aktuella skräpinsamlingsmeddelandet som registrerades med hjälp RegisterForFullGCNotification av metoden. Du kan också använda WaitForFullGCComplete metoden för att avgöra om den fullständiga skräpinsamlingen har slutförts.

När uppräkningen returnerar Succeededkan du utföra uppgifter som att förhindra att ytterligare objekt allokeras och att själv inducera en samling med Collect metoden. Observera att meddelandet inte garanterar att en fullständig skräpinsamling sker, bara att villkoren har nått tröskelvärdet som är gynnsamma för en fullständig skräpinsamling.

Den här metoden väntar på obestämd tid på att ett skräpinsamlingsmeddelande ska hämtas. Om du vill ange en tidsgräns för metoden som ska returneras om meddelandet inte kan hämtas använder du GC.WaitForFullGCApproach(Int32) metodens överbelastning. Om du anropar den här metoden utan att ange någon tidsgräns kan du anropa CancelFullGCNotification metoden om du väntar längre än vad du föredrar.

Du bör följa den här metoden med ett anrop till WaitForFullGCComplete metoden för att se till att du har haft en fullständig skräpinsamling. Om du anropar enbart den här metoden får du obestämda resultat.

Se även

Gäller för

WaitForFullGCApproach(Int32)

Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs
Källa:
GC.CoreCLR.cs

Returnerar statusen för ett registrerat meddelande under en angiven tidsgräns för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

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

Parametrar

millisecondsTimeout
Int32

Hur lång tid det tar att vänta innan en meddelandestatus kan hämtas. Ange -1 att vänta på obestämd tid.

Returer

Status för det registrerade skräpinsamlingsmeddelandet.

Attribut

Undantag

millisecondsTimeout måste vara antingen icke-negativ eller mindre än eller lika med Int32.MaxValue eller -1.

Kommentarer

Använd uppräkningen GCNotificationStatus som returneras av den här metoden för att fastställa statusen för det aktuella skräpinsamlingsmeddelandet som registrerades med hjälp RegisterForFullGCNotification av metoden. Du kan också använda WaitForFullGCComplete metoden för att avgöra om den fullständiga skräpinsamlingen har slutförts.

Observera att den här metoden returnerar omedelbart när en skräpinsamlingsmeddelandestatus hämtas, oavsett vilket värde som anges av millisecondsTimeout. Om en skräpinsamlingsmeddelandestatus inte hämtas innan millisecondsTimeout tidsgränsen uppnås returnerar NotApplicableden här metoden .

När uppräkningen returnerar Succeededkan du utföra uppgifter som att förhindra att ytterligare objekt allokeras och att själv inducera en samling med Collect metoden. Observera att meddelandet inte garanterar att en fullständig skräpinsamling sker, bara att villkoren har nått tröskelvärdet som är gynnsamma för en fullständig skräpinsamling.

Du kan anropa CancelFullGCNotification metoden när du inte kan vänta tills tidsgränsen har gått ut.

Du bör följa den här metoden med ett anrop till WaitForFullGCComplete metoden för att se till att du har haft en fullständig skräpinsamling. Om du anropar enbart den här metoden får du obestämda resultat.

Se även

Gäller för

WaitForFullGCApproach(TimeSpan)

Källa:
GC.cs
Källa:
GC.cs
Källa:
GC.cs
Källa:
GC.cs
Källa:
GC.cs

Returnerar statusen för ett registrerat meddelande under en angiven tidsgräns för att avgöra om en fullständig, blockerande skräpinsamling av den gemensamma språkkörningen är nära förestående.

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

Parametrar

timeout
TimeSpan

Tidsgränsen för att vänta på en fullständig GC-metod

Returer

Status för ett registrerat fullständigt GC-meddelande

Gäller för