GC.WaitForFullGCApproach Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplama işleminin anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.
Aşırı Yüklemeler
WaitForFullGCApproach() |
Ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplama işleminin anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür. |
WaitForFullGCApproach(Int32) |
Belirtilen zaman aşımı süresinde, ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplamanın anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür. |
WaitForFullGCApproach(TimeSpan) |
Belirtilen zaman aşımı süresinde, ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplamanın anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür. |
WaitForFullGCApproach()
- Kaynak:
- GC.CoreCLR.cs
- Kaynak:
- GC.CoreCLR.cs
- Kaynak:
- GC.CoreCLR.cs
Ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplama işleminin anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.
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
Döndürülenler
Kayıtlı çöp toplama bildirim durumu.
- Öznitelikler
Örnekler
Aşağıdaki örnekte, tam, engelleyen bir çöp toplamanın yaklaşıp yaklaşmadığını belirlemek için bu yöntemin nasıl kullanılacağı gösterilmektedir. Bildirimin durumu her olduğunda Succeeded, yaklaşan koleksiyona yanıt olarak eylemler gerçekleştirmek için kullanıcı yöntemi OnFullGCApproachNotify
çağrılır. Bu kod örneği, Çöp Toplama Bildirimleri konusu için sağlanan daha büyük bir örneğin bir parçasıdır.
// 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
Açıklamalar
GCNotificationStatus yöntemi kullanılarak kaydedilen geçerli çöp toplama bildiriminin durumunu belirlemek için bu yöntem tarafından döndürülen numaralandırmayı RegisterForFullGCNotification kullanın. Tam çöp toplama işleminin WaitForFullGCComplete tamamlanıp tamamlanmadığını belirlemek için yöntemini de kullanabilirsiniz.
Numaralandırma döndürdüğünde Succeeded, ek nesnelerin ayrılmasını önleme ve yöntemiyle Collect bir koleksiyonu kendiniz çağırma gibi görevleri gerçekleştirebilirsiniz. Bildirimin tam çöp toplamanın gerçekleşeceğini garanti etmediğini, yalnızca koşulların tam çöp toplama için uygun olan eşiğe ulaştığını unutmayın.
Bu yöntem, bir çöp toplama bildiriminin alınması için süresiz olarak bekler. Bildirim alınamazsa yöntemin döndürülmesi için bir zaman aşımı süresi belirtmek istiyorsanız yöntem aşırı yüklemesini GC.WaitForFullGCApproach(Int32) kullanın. Zaman aşımı belirtmeden bu yöntemi çağırırsanız, tercih edilenden daha uzun süre bekliyorsanız yöntemini çağırabilirsiniz CancelFullGCNotification .
Tam bir çöp toplamaya sahip olduğunuzdan WaitForFullGCComplete emin olmak için yöntemine bir çağrı ile bu yöntemi izlemeniz gerekir. Bu yöntemi tek başına çağırmak belirsiz sonuçlara neden olur.
Ayrıca bkz.
Şunlara uygulanır
WaitForFullGCApproach(Int32)
- Kaynak:
- GC.CoreCLR.cs
- Kaynak:
- GC.CoreCLR.cs
- Kaynak:
- GC.CoreCLR.cs
Belirtilen zaman aşımı süresinde, ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplamanın anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.
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
Parametreler
- millisecondsTimeout
- Int32
Bildirim durumunun elde edilebilmesi için beklenecek süre. Süresiz olarak beklemek için -1 belirtin.
Döndürülenler
Kayıtlı çöp toplama bildirim durumu.
- Öznitelikler
Özel durumlar
millisecondsTimeout
negatif olmayan veya Int32.MaxValue veya -1 değerinden küçük veya buna eşit olmalıdır.
Açıklamalar
GCNotificationStatus yöntemi kullanılarak kaydedilen geçerli çöp toplama bildiriminin durumunu belirlemek için bu yöntem tarafından döndürülen numaralandırmayı RegisterForFullGCNotification kullanın. Tam çöp toplama işleminin WaitForFullGCComplete tamamlanıp tamamlanmadığını belirlemek için yöntemini de kullanabilirsiniz.
Bu yöntemin, tarafından millisecondsTimeout
belirtilen değerden bağımsız olarak bir çöp toplama bildirim durumu alındığında hemen döndürdüğünü unutmayın. Zaman aşımına uğramadan önce millisecondsTimeout
bir çöp toplama bildirim durumu alınmazsa, bu yöntem döndürür NotApplicable.
Numaralandırma döndürdüğünde Succeeded, ek nesnelerin ayrılmasını önleme ve yöntemiyle Collect bir koleksiyonu kendiniz çağırma gibi görevleri gerçekleştirebilirsiniz. Bildirimin tam çöp toplamanın gerçekleşeceğini garanti etmediğini, yalnızca koşulların tam çöp toplama için uygun olan eşiğe ulaştığını unutmayın.
Zaman aşımı süresinin geçmesini bekleyemediğiniz durumlarda yöntemini çağırabilirsiniz CancelFullGCNotification .
Tam bir çöp toplamaya sahip olduğunuzdan WaitForFullGCComplete emin olmak için yöntemine bir çağrı ile bu yöntemi izlemeniz gerekir. Bu yöntemi tek başına çağırmak belirsiz sonuçlara neden olur.
Ayrıca bkz.
Şunlara uygulanır
WaitForFullGCApproach(TimeSpan)
- Kaynak:
- GC.cs
- Kaynak:
- GC.cs
- Kaynak:
- GC.cs
Belirtilen zaman aşımı süresinde, ortak dil çalışma zamanı tarafından tam, engelleyici bir çöp toplamanın anlık olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.
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
Parametreler
- timeout
- TimeSpan
Tam GC yaklaşımını beklerken zaman aşımı
Döndürülenler
Kayıtlı tam GC bildiriminin durumu