Udostępnij za pośrednictwem


GC.WaitForFullGCComplete Metoda

Definicja

Zwraca stan zarejestrowanego powiadomienia w celu określenia, czy ukończono pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego.

Przeciążenia

WaitForFullGCComplete()

Zwraca stan zarejestrowanego powiadomienia w celu określenia, czy ukończono pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego.

WaitForFullGCComplete(Int32)

Zwraca w określonym przedziale czasu stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez język wspólny zostało ukończone.

WaitForFullGCComplete(TimeSpan)

Zwraca stan zarejestrowanego powiadomienia o tym, czy blokowanie odzyskiwania pamięci zostało zakończone. Może czekać bezterminowo na pełną kolekcję.

WaitForFullGCComplete()

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Zwraca stan zarejestrowanego powiadomienia w celu określenia, czy ukończono pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego.

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

Zwraca

Stan zarejestrowanego powiadomienia o wyrzucaniu elementów bezużytecznych.

Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak za pomocą tej metody określić, czy ukończono pełne odzyskiwanie pamięci. Za każdym razem, gdy stan powiadomienia to Succeeded, metoda OnFullGCCompletedNotify użytkownika jest wywoływana w celu wykonania akcji w odpowiedzi na ukończoną kolekcję. Ten przykład kodu jest częścią większego przykładu przedstawionego w temacie Powiadomienia dotyczące odzyskiwania pamięci .

// 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

Uwagi

GCNotificationStatus Użyj wyliczenia zwróconego przez tę metodę, aby określić stan bieżącego powiadomienia odzyskiwania pamięci, które zostało zarejestrowane przy użyciu RegisterForFullGCNotification metody . Można również użyć WaitForFullGCApproach metody , aby określić, czy pełne odzyskiwanie pamięci jest nieuchronne.

Gdy wyliczenie zwraca Succeededwartość , można wykonywać zadania, takie jak wznawianie pracy i uzyskiwanie liczby kolekcji z właściwością CollectionCount .

Ta metoda czeka na uzyskanie powiadomienia o odśmieceniu pamięci przez czas nieokreślony. Jeśli chcesz określić limit czasu dla metody, która ma zostać zwrócona, jeśli nie można uzyskać powiadomienia, użyj GC.WaitForFullGCApproach(Int32) przeciążenia metody. Jeśli wywołasz tę metodę bez określenia limitu czasu, możesz wywołać CancelFullGCNotification metodę, jeśli czekasz dłużej niż preferowano.

To wywołanie metody powinno być poprzedzone wywołaniem WaitForFullGCApproach metody, aby upewnić się, że masz pełne odzyskiwanie pamięci. Wywołanie tej samej metody może spowodować nieokreślone wyniki.

Zobacz też

Dotyczy

WaitForFullGCComplete(Int32)

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Zwraca w określonym przedziale czasu stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez język wspólny zostało ukończone.

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

Czas oczekiwania przed uzyskaniem stanu powiadomienia. Określ wartość -1, aby czekać na czas nieokreślony.

Zwraca

Stan zarejestrowanego powiadomienia o wyrzucaniu elementów bezużytecznych.

Atrybuty

Wyjątki

millisecondsTimeout wartość musi być nie ujemna lub mniejsza niż lub równa int32.MaxValue lub -1.

Uwagi

GCNotificationStatus Użyj wyliczenia zwróconego przez tę metodę, aby określić stan bieżącego powiadomienia odzyskiwania pamięci, które zostało zarejestrowane przy użyciu RegisterForFullGCNotification metody . Można również użyć WaitForFullGCApproach metody , aby określić, czy pełne odzyskiwanie pamięci jest nieuchronne.

Należy pamiętać, że ta metoda jest zwracana natychmiast za każdym razem, gdy zostanie uzyskany stan powiadomienia o odśmieceniu pamięci, niezależnie od wartości określonej przez millisecondsTimeout. Jeśli stan powiadomienia odzyskiwania pamięci nie zostanie uzyskany przed millisecondsTimeout upływem limitu czasu, ta metoda zwraca wartość NotApplicable.

Gdy wyliczenie zwraca Succeededwartość , można wykonywać zadania, takie jak wznawianie pracy i uzyskiwanie liczby kolekcji z właściwością CollectionCount .

Możesz wywołać metodę CancelFullGCNotification , gdy nie można poczekać na upłynięcie limitu czasu.

To wywołanie metody powinno być poprzedzone wywołaniem WaitForFullGCApproach metody, aby upewnić się, że masz pełne odzyskiwanie pamięci. Wywołanie tej samej metody może spowodować nieokreślone wyniki.

Zobacz też

Dotyczy

WaitForFullGCComplete(TimeSpan)

Źródło:
GC.cs
Źródło:
GC.cs
Źródło:
GC.cs

Zwraca stan zarejestrowanego powiadomienia o tym, czy blokowanie odzyskiwania pamięci zostało zakończone. Może czekać bezterminowo na pełną kolekcję.

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

Limit czasu oczekiwania na pełną kolekcję

Zwraca

Stan zarejestrowanego pełnego powiadomienia GC

Dotyczy