GC.WaitForFullGCApproach Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente.
Overload
WaitForFullGCApproach() |
Restituisce lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente. |
WaitForFullGCApproach(Int32) |
Restituisce, in un periodo di timeout specificato, lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente. |
WaitForFullGCApproach(TimeSpan) |
Restituisce, in un periodo di timeout specificato, lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente. |
WaitForFullGCApproach()
- Origine:
- GC.CoreCLR.cs
- Origine:
- GC.CoreCLR.cs
- Origine:
- GC.CoreCLR.cs
Restituisce lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente.
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
Restituisce
Stato della notifica dell'operazione di Garbage Collection registrata.
- Attributi
Esempio
Nell'esempio riportato di seguito viene illustrato come utilizzare questo metodo per determinare se è imminente una procedura completa di Garbage Collection bloccante. Ogni volta che lo stato della notifica è Succeeded, il metodo OnFullGCApproachNotify
utente viene chiamato per eseguire azioni in risposta alla raccolta di avvicinamento. Questo esempio di codice fa parte di un esempio più ampio fornito per l'argomento Notifiche di Garbage Collection .
// 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
Commenti
Usare l'enumerazione GCNotificationStatus restituita da questo metodo per determinare lo stato della notifica di Garbage Collection corrente registrata usando il RegisterForFullGCNotification metodo . È anche possibile usare il WaitForFullGCComplete metodo per determinare se la Garbage Collection completa è stata completata.
Quando l'enumerazione restituisce Succeeded, è possibile eseguire attività come impedire l'allocazione di oggetti aggiuntivi e l'induzione di una raccolta con il Collect metodo . Si noti che la notifica non garantisce che si verifichi una Garbage Collection completa, solo che le condizioni hanno raggiunto la soglia favorevole per un garbage collection completo.
Questo metodo attende in modo indefinito che venga ottenuta una notifica di Garbage Collection. Se si vuole specificare un periodo di timeout per il metodo da restituire se non è possibile ottenere la notifica, usare l'overload del GC.WaitForFullGCApproach(Int32) metodo. Se si chiama questo metodo senza specificare un timeout, è possibile chiamare il CancelFullGCNotification metodo se si è in attesa più lungo del preferito.
È consigliabile seguire questo metodo con una chiamata al WaitForFullGCComplete metodo per assicurarsi di avere una Garbage Collection completa. La chiamata di questo metodo da sola causa risultati indeterminato.
Vedi anche
Si applica a
WaitForFullGCApproach(Int32)
- Origine:
- GC.CoreCLR.cs
- Origine:
- GC.CoreCLR.cs
- Origine:
- GC.CoreCLR.cs
Restituisce, in un periodo di timeout specificato, lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente.
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
Parametri
- millisecondsTimeout
- Int32
Tempo di attesa prima di poter ottenere lo stato di una notifica. Specificare -1 per restare in attesa in modo indefinito.
Restituisce
Stato della notifica dell'operazione di Garbage Collection registrata.
- Attributi
Eccezioni
millisecondsTimeout
deve essere non negativo o minore o uguale a Int32.MaxValue o -1.
Commenti
Usare l'enumerazione GCNotificationStatus restituita da questo metodo per determinare lo stato della notifica di Garbage Collection corrente registrata usando il RegisterForFullGCNotification metodo . È anche possibile usare il WaitForFullGCComplete metodo per determinare se la Garbage Collection completa è stata completata.
Si noti che questo metodo restituisce immediatamente ogni volta che viene ottenuto uno stato di notifica di Garbage Collection, indipendentemente dal valore specificato da millisecondsTimeout
. Se lo stato di notifica di Garbage Collection non viene ottenuto prima millisecondsTimeout
del timeout, questo metodo restituisce NotApplicable.
Quando l'enumerazione restituisce Succeeded, è possibile eseguire attività come impedire l'allocazione di oggetti aggiuntivi e l'induzione di una raccolta con il Collect metodo . Si noti che la notifica non garantisce che si verifichi una Garbage Collection completa, solo che le condizioni hanno raggiunto la soglia favorevole per un garbage collection completo.
È possibile chiamare il CancelFullGCNotification metodo quando non è possibile attendere che il periodo di timeout venga trascorso.
È consigliabile seguire questo metodo con una chiamata al WaitForFullGCComplete metodo per assicurarsi di avere una Garbage Collection completa. La chiamata di questo metodo da sola causa risultati indeterminato.
Vedi anche
Si applica a
WaitForFullGCApproach(TimeSpan)
- Origine:
- GC.cs
- Origine:
- GC.cs
- Origine:
- GC.cs
Restituisce, in un periodo di timeout specificato, lo stato di una notifica registrata per determinare se una procedura completa di Garbage Collection bloccante tramite Common Language Runtime sia imminente.
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
Parametri
- timeout
- TimeSpan
Timeout in attesa di un approccio GC completo
Restituisce
Stato di una notifica GC completa registrata