GC.WaitForFullGCComplete Yöntem

Tanım

Ortak dil çalışma zamanı tarafından çöp toplamayı engelleyen tam bir bildirimin tamamlanıp tamamlanmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.

Aşırı Yüklemeler

WaitForFullGCComplete()

Ortak dil çalışma zamanı tarafından çöp toplamayı engelleyen tam bir bildirimin tamamlanıp tamamlanmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.

WaitForFullGCComplete(Int32)

Belirtilen zaman aşımı süresinde, çalışma zamanının tamamladığı ortak dile göre çöp toplamayı engelleyen tam bir bildirim olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.

WaitForFullGCComplete(TimeSpan)

Engelleyici çöp toplama işleminin tamamlanıp tamamlanmadığına ilişkin kayıtlı bildirimin durumunu döndürür. Tam koleksiyon için süresiz olarak bekleyebilir.

WaitForFullGCComplete()

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Ortak dil çalışma zamanı tarafından çöp toplamayı engelleyen tam bir bildirimin tamamlanıp tamamlanmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.

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

Döndürülenler

Kayıtlı çöp toplama bildirim durumu.

Öznitelikler

Örnekler

Aşağıdaki örnekte, tam çöp toplama işleminin tamamlanıp tamamlanmadığını belirlemek için bu yöntemin nasıl kullanılacağı gösterilmektedir. Bildirimin durumu her olduğunda Succeeded, tamamlanan koleksiyona yanıt olarak eylemler gerçekleştirmek için kullanıcı yöntemi OnFullGCCompletedNotify çağrılır. Bu kod örneği, Çöp Toplama Bildirimleri konusu için sağlanan daha büyük bir örneğin parçasıdır.

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

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 toplamanın WaitForFullGCApproach anlık olup olmadığını belirlemek için yöntemini de kullanabilirsiniz.

Numaralandırma döndürdüğünde Succeeded, işi devam ettirip özelliğiyle CollectionCount bir koleksiyon sayısı elde etme gibi görevleri gerçekleştirebilirsiniz.

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 .

Bu yöntem çağrısı, tam bir çöp toplamaya sahip olduğunuzdan emin olmak için yöntemine bir çağrı WaitForFullGCApproach ile önce getirilmelidir. Bu yöntemin tek başına çağrılması belirsiz sonuçlar üretebilir.

Ayrıca bkz.

Şunlara uygulanır

WaitForFullGCComplete(Int32)

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Belirtilen zaman aşımı süresinde, çalışma zamanının tamamladığı ortak dile göre çöp toplamayı engelleyen tam bir bildirim olup olmadığını belirlemek için kayıtlı bildirimin durumunu döndürür.

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

Parametreler

millisecondsTimeout
Int32

Bildirim durumunun alınabilmesi 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 int32.MaxValue veya -1 değerinden negatif veya küçük ya da 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 toplamanın WaitForFullGCApproach anlık olup olmadığını belirlemek için yöntemini de kullanabilirsiniz.

Bu yöntemin, tarafından millisecondsTimeoutbelirtilen değerden bağımsız olarak çöp toplama bildirim durumu her 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, işi devam ettirip özelliğiyle CollectionCount bir koleksiyon sayısı elde etme gibi görevleri gerçekleştirebilirsiniz.

Zaman aşımı süresinin geçmesini bekleyemediğiniz durumlarda yöntemini çağırabilirsiniz CancelFullGCNotification .

Bu yöntem çağrısı, tam bir çöp toplamaya sahip olduğunuzdan emin olmak için yöntemine bir çağrı WaitForFullGCApproach ile önce getirilmelidir. Bu yöntemin tek başına çağrılması belirsiz sonuçlar üretebilir.

Ayrıca bkz.

Şunlara uygulanır

WaitForFullGCComplete(TimeSpan)

Kaynak:
GC.cs
Kaynak:
GC.cs
Kaynak:
GC.cs

Engelleyici çöp toplama işleminin tamamlanıp tamamlanmadığına ilişkin kayıtlı bildirimin durumunu döndürür. Tam koleksiyon için süresiz olarak bekleyebilir.

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

Parametreler

timeout
TimeSpan

Tam koleksiyon beklerken zaman aşımı

Döndürülenler

Kayıtlı tam GC bildiriminin durumu

Şunlara uygulanır