GC.WaitForFullGCApproach Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne.
Przeciążenia
WaitForFullGCApproach() |
Zwraca stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne. |
WaitForFullGCApproach(Int32) |
Zwraca w określonym przedziale czasu stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne. |
WaitForFullGCApproach(TimeSpan) |
Zwraca w określonym przedziale czasu stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne. |
WaitForFullGCApproach()
- Ź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 pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne.
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
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 zbliża się pełne blokowanie odzyskiwania pamięci. Za każdym razem, gdy stan powiadomienia to Succeeded, metoda OnFullGCApproachNotify
użytkownika jest wywoływana w celu wykonania akcji w odpowiedzi na zbliżającą się 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 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
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ć metody , WaitForFullGCComplete aby określić, czy pełne odzyskiwanie pamięci zostało ukończone.
Gdy wyliczenie zwraca Succeededwartość , można wykonywać zadania, takie jak zapobieganie przydzielaniu dodatkowych obiektów i samodzielne tworzenie kolekcji za pomocą Collect metody . Należy pamiętać, że powiadomienie nie gwarantuje, że nastąpi pełne odzyskiwanie pamięci, tylko że warunki osiągną próg, który jest korzystny dla pełnego odzyskiwania pamięci.
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.
Należy wykonać tę metodę za pomocą wywołania WaitForFullGCComplete metody , aby upewnić się, że masz pełne odzyskiwanie pamięci. Wywołanie tej samej metody powoduje nieokreślone wyniki.
Zobacz też
Dotyczy
WaitForFullGCApproach(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 środowisko uruchomieniowe języka wspólnego jest nieuchronne.
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
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ć metody , WaitForFullGCComplete aby określić, czy pełne odzyskiwanie pamięci zostało ukończone.
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 zapobieganie przydzielaniu dodatkowych obiektów i samodzielne tworzenie kolekcji za pomocą Collect metody . Należy pamiętać, że powiadomienie nie gwarantuje, że nastąpi pełne odzyskiwanie pamięci, tylko że warunki osiągną próg, który jest korzystny dla pełnego odzyskiwania pamięci.
Możesz wywołać metodę CancelFullGCNotification , gdy nie można poczekać na upłynięcie limitu czasu.
Należy wykonać tę metodę za pomocą wywołania WaitForFullGCComplete metody , aby upewnić się, że masz pełne odzyskiwanie pamięci. Wywołanie tej samej metody powoduje nieokreślone wyniki.
Zobacz też
Dotyczy
WaitForFullGCApproach(TimeSpan)
- Źródło:
- GC.cs
- Źródło:
- GC.cs
- Źródło:
- GC.cs
Zwraca w określonym przedziale czasu stan zarejestrowanego powiadomienia w celu określenia, czy pełne blokowanie odzyskiwania pamięci przez środowisko uruchomieniowe języka wspólnego jest nieuchronne.
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
Limit czasu oczekiwania na pełne podejście GC
Zwraca
Stan zarejestrowanego pełnego powiadomienia GC