GC.WaitForFullGCApproach Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí stav registrovaného oznámení pro určení, zda je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime).
Přetížení
| Name | Description |
|---|---|
| WaitForFullGCApproach() |
Vrátí stav registrovaného oznámení pro určení, zda je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime). |
| WaitForFullGCApproach(Int32) |
Vrátí stav registrovaného oznámení v zadaném časovém limitu, který určuje, jestli je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime) bezprostředně zablokované. |
| WaitForFullGCApproach(TimeSpan) |
Vrátí stav registrovaného oznámení v zadaném časovém limitu, který určuje, jestli je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime) bezprostředně zablokované. |
WaitForFullGCApproach()
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Vrátí stav registrovaného oznámení pro určení, zda je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime).
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
Návraty
Stav registrovaného oznámení o uvolňování paměti.
- Atributy
Příklady
Následující příklad ukazuje, jak tuto metodu použít k určení, zda se blíží úplné blokování uvolňování paměti. Kdykoli je Succeededstav oznámení , volá se metoda OnFullGCApproachNotify uživatele k provádění akcí v reakci na blížící se kolekci. Tento příklad kódu je součástí většího příkladu určeného pro téma Oznámení o uvolňování paměti .
// 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
Poznámky
Pomocí výčtu GCNotificationStatus vráceného touto metodou určete stav aktuálního oznámení uvolňování paměti, které bylo registrováno pomocí RegisterForFullGCNotification metody. Můžete také použít metodu WaitForFullGCComplete k určení, zda bylo dokončeno úplné uvolňování paměti.
Když se výčet vrátí Succeeded, můžete provádět úlohy, jako je například zabránění přidělení dalších objektů a vynucení kolekce pomocí Collect metody. Všimněte si, že oznámení nezaručuje, že dojde k úplnému uvolňování paměti, pouze tyto podmínky dosáhly prahové hodnoty, které jsou příznivé pro úplné uvolňování paměti.
Tato metoda čeká na získání oznámení uvolňování paměti na neomezenou dobu. Chcete-li zadat časový limit pro metodu vrátit, pokud nelze získat oznámení, použijte GC.WaitForFullGCApproach(Int32) přetížení metody. Pokud tuto metodu zavoláte bez zadání časového limitu, můžete metodu CancelFullGCNotification volat, pokud čekáte déle, než je upřednostňované.
Tuto metodu byste měli postupovat s voláním WaitForFullGCComplete metody, abyste měli jistotu, že máte úplnou uvolňování paměti. Volání této metody sama způsobuje nedeterminovat výsledky.
Viz také
Platí pro
WaitForFullGCApproach(Int32)
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Vrátí stav registrovaného oznámení v zadaném časovém limitu, který určuje, jestli je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime) bezprostředně zablokované.
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
Parametry
- millisecondsTimeout
- Int32
Doba čekání před získáním stavu oznámení. Zadejte -1 k čekání na neomezenou dobu.
Návraty
Stav registrovaného oznámení o uvolňování paměti.
- Atributy
Výjimky
millisecondsTimeout musí být buď nezáporná, nebo menší nebo rovna hodnotě Int32.MaxValue nebo -1.
Poznámky
Pomocí výčtu GCNotificationStatus vráceného touto metodou určete stav aktuálního oznámení uvolňování paměti, které bylo registrováno pomocí RegisterForFullGCNotification metody. Můžete také použít metodu WaitForFullGCComplete k určení, zda bylo dokončeno úplné uvolňování paměti.
Všimněte si, že tato metoda vrátí okamžitě pokaždé, když se získá stav oznámení uvolňování paměti bez ohledu na hodnotu určenou millisecondsTimeout. Pokud stav oznámení uvolňování paměti není získán před millisecondsTimeout časovým limitem, tato metoda vrátí NotApplicable.
Když se výčet vrátí Succeeded, můžete provádět úlohy, jako je například zabránění přidělení dalších objektů a vynucení kolekce pomocí Collect metody. Všimněte si, že oznámení nezaručuje, že dojde k úplnému uvolňování paměti, pouze tyto podmínky dosáhly prahové hodnoty, které jsou příznivé pro úplné uvolňování paměti.
Metodu CancelFullGCNotification můžete volat, když nemůžete čekat na uplynutí časového limitu.
Tuto metodu byste měli postupovat s voláním WaitForFullGCComplete metody, abyste měli jistotu, že máte úplnou uvolňování paměti. Volání této metody sama způsobuje nedeterminovat výsledky.
Viz také
Platí pro
WaitForFullGCApproach(TimeSpan)
- Zdroj:
- GC.cs
- Zdroj:
- GC.cs
- Zdroj:
- GC.cs
- Zdroj:
- GC.cs
- Zdroj:
- GC.cs
Vrátí stav registrovaného oznámení v zadaném časovém limitu, který určuje, jestli je úplné blokování uvolňování paměti modulem CLR (Common Language Runtime) bezprostředně zablokované.
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
Parametry
- timeout
- TimeSpan
Časový limit čekání na úplný přístup uvolňování paměti
Návraty
Stav registrovaného úplného oznámení o uvolňování paměti