GC.WaitForFullGCApproach Methode

Definition

Gibt den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

Überlädt

WaitForFullGCApproach()

Gibt den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

WaitForFullGCApproach(Int32)

Gibt innerhalb einer angegebenen Timeoutspanne den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

WaitForFullGCApproach(TimeSpan)

Gibt innerhalb einer angegebenen Timeoutspanne den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

WaitForFullGCApproach()

Gibt den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

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

Gibt zurück

GCNotificationStatus

Der Status der registrierten Garbage Collection-Benachrichtigung.

Attribute

Beispiele

Das folgende Beispiel zeigt, wie Sie diese Methode verwenden, um zu bestimmen, ob eine vollständige, blockierende Garbage Collection nähert. Wenn der Status der Benachrichtigung lautet Succeeded, wird die Benutzermethode OnFullGCApproachNotify aufgerufen, um Aktionen als Reaktion auf die nähernde Auflistung auszuführen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für Garbage Collection Notifications thema bereitgestellt wird.

// Check for a notification of an approaching collection.
GCNotificationStatus s = GC::WaitForFullGCApproach();
if (s == GCNotificationStatus::Succeeded)
{
    Console::WriteLine("GC Notifiction 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.
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

Hinweise

Verwenden Sie die GCNotificationStatus von dieser Methode zurückgegebene Aufzählung, um den Status der aktuellen Garbage Collection-Benachrichtigung zu ermitteln, die mithilfe der RegisterForFullGCNotification Methode registriert wurde. Sie können die WaitForFullGCComplete Methode auch verwenden, um zu ermitteln, ob die vollständige Garbage Collection abgeschlossen ist.

Wenn die Enumeration zurückgegeben Succeededwird, können Sie Aufgaben ausführen, z. B. verhindern, dass zusätzliche Objekte zugewiesen und eine Auflistung selbst mit der Collect Methode abgeleitet werden. Beachten Sie, dass die Benachrichtigung nicht garantiert, dass eine vollständige Garbage Collection auftritt, nur dass Bedingungen den Schwellenwert erreicht haben, der für eine vollständige Garbage Collection günstig ist.

Diese Methode wartet auf unbestimmte Zeit, bis eine Garbage Collection-Benachrichtigung abgerufen wird. Wenn Sie einen Timeoutzeitraum für die Methode angeben möchten, die zurückgegeben werden soll, wenn die Benachrichtigung nicht abgerufen werden kann, verwenden Sie die GC.WaitForFullGCApproach(Int32) Methodenüberladung. Wenn Sie diese Methode ohne Angabe eines Timeouts aufrufen, können Sie die CancelFullGCNotification Methode aufrufen, wenn Sie länger als bevorzugt warten.

Sie sollten diese Methode mit einem Aufruf der WaitForFullGCComplete Methode befolgen, um sicherzustellen, dass Sie über eine vollständige Garbage Collection verfügen. Das Aufrufen dieser Methode führt zu unbestimmten Ergebnissen.

Siehe auch

Gilt für:

WaitForFullGCApproach(Int32)

Gibt innerhalb einer angegebenen Timeoutspanne den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

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

Parameter

millisecondsTimeout
Int32

Die Dauer der Wartezeit, bevor ein Benachrichtigungsstatus abgerufen werden kann. Geben Sie -1 an, um unbegrenzt zu warten.

Gibt zurück

GCNotificationStatus

Der Status der registrierten Garbage Collection-Benachrichtigung.

Attribute

Ausnahmen

millisecondsTimeout muss entweder nicht negativ oder kleiner als oder gleich Int32.MaxValue oder -1 sein.

Hinweise

Verwenden Sie die GCNotificationStatus von dieser Methode zurückgegebene Aufzählung, um den Status der aktuellen Garbage Collection-Benachrichtigung zu ermitteln, die mithilfe der RegisterForFullGCNotification Methode registriert wurde. Sie können die WaitForFullGCComplete Methode auch verwenden, um zu ermitteln, ob die vollständige Garbage Collection abgeschlossen ist.

Beachten Sie, dass diese Methode sofort zurückgibt, wenn ein Garbage Collection-Benachrichtigungsstatus abgerufen wird, unabhängig vom durch .millisecondsTimeout Wenn ein Status der Garbage Collection-Benachrichtigung vor millisecondsTimeout dem Auschecken nicht abgerufen wird, gibt diese Methode zurück NotApplicable.

Wenn die Enumeration zurückgegeben Succeededwird, können Sie Aufgaben ausführen, z. B. verhindern, dass zusätzliche Objekte zugewiesen und eine Auflistung selbst mit der Collect Methode abgeleitet werden. Beachten Sie, dass die Benachrichtigung nicht garantiert, dass eine vollständige Garbage Collection auftritt, nur dass Bedingungen den Schwellenwert erreicht haben, der für eine vollständige Garbage Collection günstig ist.

Sie können die CancelFullGCNotification Methode aufrufen, wenn Sie nicht warten können, bis der Timeoutzeitraum abgelaufen ist.

Sie sollten diese Methode mit einem Aufruf der WaitForFullGCComplete Methode befolgen, um sicherzustellen, dass Sie über eine vollständige Garbage Collection verfügen. Das Aufrufen dieser Methode führt zu unbestimmten Ergebnissen.

Siehe auch

Gilt für:

WaitForFullGCApproach(TimeSpan)

Gibt innerhalb einer angegebenen Timeoutspanne den Status einer registrierten Benachrichtigung zurück, um zu bestimmen, ob eine vollständige blockierende Garbage Collection durch die Common Language Runtime bevorsteht.

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

Parameter

timeout
TimeSpan

Timeout für das Warten auf einen vollständigen GC-Ansatz

Gibt zurück

GCNotificationStatus

Der Status einer registrierten vollständigen GC-Benachrichtigung

Gilt für: