GC.WaitForFullGCApproach Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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