Sdílet prostřednictvím


GC.WaitForFullGCComplete Metoda

Definice

Vrátí stav registrovaného oznámení pro určení, zda bylo dokončeno úplné, blokující uvolňování paměti modulem CLR (Common Language Runtime).

Přetížení

WaitForFullGCComplete()

Vrátí stav registrovaného oznámení pro určení, zda bylo dokončeno úplné, blokující uvolňování paměti modulem CLR (Common Language Runtime).

WaitForFullGCComplete(Int32)

Vrátí v zadaném časovém limitu stav registrovaného oznámení pro určení, zda bylo dokončeno úplné a blokující uvolňování paměti podle běžného jazyka modulu runtime.

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 neomezeně dlouho na úplnou kolekci.

WaitForFullGCComplete()

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

Vrátí stav registrovaného oznámení pro určení, zda bylo dokončeno úplné, blokující 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 oznámení registrovaného uvolnění paměti.

Atributy

Příklady

Následující příklad ukazuje, jak použít tuto metodu k určení, zda bylo dokončeno úplné uvolňování paměti. Pokaždé, když je Succeededstav oznámení , je volána metoda OnFullGCCompletedNotify uživatele, která provádí akce v reakci na dokončenou kolekci. Tento příklad kódu je součástí většího příkladu pro téma Oznámení o uvolňování paměti .

// Check for a notification of a completed collection.
s = GC::WaitForFullGCComplete();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notification raised.");
    OnFullGCCompleteEndNotify();
}
else if (s == 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.
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í o uvolňování paměti, které bylo zaregistrováno pomocí RegisterForFullGCNotification metody . Můžete také použít metodu WaitForFullGCApproach k určení, zda hrozí úplné uvolňování paměti.

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

Tato metoda čeká po neomezenou dobu na získání oznámení o uvolňování paměti. 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 voláte bez zadání časového limitu, můžete metodu CancelFullGCNotification volat, pokud čekáte déle, než je upřednostňované.

Tomuto volání metody by mělo předcházet volání WaitForFullGCApproach metody , aby se zajistilo úplné uvolňování paměti. Volání samotné 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

Vrátí v zadaném časovém limitu stav registrovaného oznámení pro určení, zda bylo dokončeno úplné a blokující uvolňování paměti podle běžného jazyka modulu runtime.

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í, než bude možné získat stav oznámení. Pokud chcete čekat neomezeně dlouho, zadejte -1.

Návraty

Stav oznámení registrovaného uvolnění paměti.

Atributy

Výjimky

millisecondsTimeout Musí být 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í o uvolňování paměti, které bylo zaregistrováno pomocí RegisterForFullGCNotification metody . Můžete také použít metodu WaitForFullGCApproach k určení, zda hrozí úplné uvolňování paměti.

Všimněte si, že tato metoda vrátí okamžitě při každém získání stavu oznámení o uvolňování paměti bez ohledu na hodnotu určenou parametrem millisecondsTimeout. Pokud není získán stav oznámení o uvolňování paměti před millisecondsTimeout vypršením časového limitu, vrátí NotApplicabletato metoda .

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

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

Tomuto volání metody by mělo předcházet volání WaitForFullGCApproach metody , aby se zajistilo úplné uvolňování paměti. Volání samotné 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

Vrátí stav registrovaného oznámení o tom, jestli se dokončilo blokování uvolňování paměti. Může čekat neomezeně dlouho 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

Vypršení časového limitu při čekání na úplnou kolekci

Návraty

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

Platí pro