Sdílet prostřednictvím


GC.WaitForFullGCComplete Metoda

Definice

Vrátí stav registrovaného oznámení pro určení, jestli se dokončilo úplné blokování uvolňování paměti modulem CLR (Common Language Runtime).

Přetížení

Name Description
WaitForFullGCComplete()

Vrátí stav registrovaného oznámení pro určení, jestli se dokončilo úplné blokování uvolňování paměti modulem CLR (Common Language Runtime).

WaitForFullGCComplete(Int32)

Vrátí stav registrovaného oznámení v zadaném časovém limitu pro určení, jestli úplné blokování uvolňování paměti běžným jazykem, které modul runtime dokončil.

WaitForFullGCComplete(TimeSpan)

Vrátí stav registrovaného oznámení o tom, jestli se dokončilo blokování uvolňování paměti. Může čekat na neomezenou dobu na úplnou kolekci.

WaitForFullGCComplete()

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í, jestli se dokončilo úplné blokování uvolňování paměti modulem CLR (Common Language Runtime).

public:
 static GCNotificationStatus WaitForFullGCComplete();
public static GCNotificationStatus WaitForFullGCComplete();
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCComplete();
static member WaitForFullGCComplete : unit -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCComplete : unit -> GCNotificationStatus
Public Shared Function WaitForFullGCComplete () 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 použít tuto metodu k určení, zda je dokončena úplná uvolňování paměti. Kdykoli je Succeededstav oznámení , je volána metoda OnFullGCCompletedNotify uživatele k provádění akcí v reakci na dokončenou 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 a completed collection.
GCNotificationStatus status = GC.WaitForFullGCComplete();
if (status == GCNotificationStatus.Succeeded)
{
    Console.WriteLine("GC Notification raised.");
    OnFullGCCompleteEndNotify();
}
else if (status == GCNotificationStatus.Canceled)
{
    Console.WriteLine("GC Notification cancelled.");
    break;
}
else
{
    // Could be a time out.
    Console.WriteLine("GC Notification not applicable.");
    break;
}
// 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
' Check for a notification of a completed collection.
s = GC.WaitForFullGCComplete
If (s = GCNotificationStatus.Succeeded) Then
    Console.WriteLine("GC Notifiction raised.")
    OnFullGCCompleteEndNotify()
ElseIf (s = GCNotificationStatus.Canceled) Then
    Console.WriteLine("GC Notification cancelled.")
    Exit While
Else
    ' Could be a time out.
    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 WaitForFullGCApproach k určení, zda úplné uvolňování paměti je bezprostřední.

Když se výčet vrátí Succeeded, můžete provádět úlohy, jako je obnovení práce a získání počtu kolekcí s metodou CollectionCount(Int32) .

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é.

Toto volání metody by se mělo předcházet voláním WaitForFullGCApproach metody, abyste měli jistotu, že máte úplnou uvolňování paměti. Volání této metody může vytvořit neurčité výsledky.

Viz také

Platí pro

WaitForFullGCComplete(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 pro určení, jestli úplné blokování uvolňování paměti běžným jazykem, které modul runtime dokončil.

public:
 static GCNotificationStatus WaitForFullGCComplete(int millisecondsTimeout);
public static GCNotificationStatus WaitForFullGCComplete(int millisecondsTimeout);
[System.Security.SecurityCritical]
public static GCNotificationStatus WaitForFullGCComplete(int millisecondsTimeout);
static member WaitForFullGCComplete : int -> GCNotificationStatus
[<System.Security.SecurityCritical>]
static member WaitForFullGCComplete : int -> GCNotificationStatus
Public Shared Function WaitForFullGCComplete (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 WaitForFullGCApproach k určení, zda úplné uvolňování paměti je bezprostřední.

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.

Při vrácení Succeededvýčtu můžete provádět úlohy, jako je obnovení práce a získání počtu kolekcí s CollectionCount(Int32) vlastností.

Metodu CancelFullGCNotification můžete volat, když nemůžete čekat na uplynutí časového limitu.

Toto volání metody by se mělo předcházet voláním WaitForFullGCApproach metody, abyste měli jistotu, že máte úplnou uvolňování paměti. Volání této metody může vytvořit neurčité výsledky.

Viz také

Platí pro

WaitForFullGCComplete(TimeSpan)

Zdroj:
GC.cs
Zdroj:
GC.cs
Zdroj:
GC.cs
Zdroj:
GC.cs
Zdroj:
GC.cs

Vrátí stav registrovaného oznámení o tom, jestli se dokončilo blokování uvolňování paměti. Může čekat na neomezenou dobu na úplnou kolekci.

public:
 static GCNotificationStatus WaitForFullGCComplete(TimeSpan timeout);
public static GCNotificationStatus WaitForFullGCComplete(TimeSpan timeout);
static member WaitForFullGCComplete : TimeSpan -> GCNotificationStatus
Public Shared Function WaitForFullGCComplete (timeout As TimeSpan) As GCNotificationStatus

Parametry

timeout
TimeSpan

Časový limit při čekání na úplnou kolekci

Návraty

Stav registrovaného úplného oznámení o uvolňování paměti

Platí pro