Share via


GC.WaitForFullGCApproach Metode

Definisi

Mengembalikan status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

Overload

WaitForFullGCApproach()

Mengembalikan status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

WaitForFullGCApproach(Int32)

Mengembalikan, dalam periode waktu habis yang ditentukan, status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

WaitForFullGCApproach(TimeSpan)

Mengembalikan, dalam periode waktu habis yang ditentukan, status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

WaitForFullGCApproach()

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Mengembalikan status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

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

Mengembalikan

Status pemberitahuan pengumpulan sampah terdaftar.

Atribut

Contoh

Contoh berikut menunjukkan cara menggunakan metode ini untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran mendekati. Setiap kali status pemberitahuan adalah Succeeded, metode OnFullGCApproachNotify pengguna dipanggil untuk melakukan tindakan sebagai respons terhadap pengumpulan yang mendekati. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk topik Pemberitahuan Pengumpulan Sampah .

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

Keterangan

Gunakan enumerasi yang GCNotificationStatus dikembalikan oleh metode ini untuk menentukan status pemberitahuan pengumpulan sampah saat ini yang didaftarkan dengan menggunakan RegisterForFullGCNotification metode . Anda juga dapat menggunakan WaitForFullGCComplete metode untuk menentukan apakah pengumpulan sampah penuh telah selesai.

Ketika enumerasi kembali Succeeded, Anda dapat melakukan tugas seperti mencegah objek tambahan dialokasikan dan menginduksi koleksi sendiri dengan Collect metode . Perhatikan bahwa pemberitahuan tidak menjamin bahwa pengumpulan sampah penuh akan terjadi, hanya kondisi yang telah mencapai ambang batas yang menguntungkan untuk terjadinya pengumpulan sampah penuh.

Metode ini menunggu tanpa batas waktu agar pemberitahuan pengumpulan sampah diperoleh. Jika Anda ingin menentukan periode waktu habis untuk mengembalikan metode jika pemberitahuan tidak dapat diperoleh, gunakan GC.WaitForFullGCApproach(Int32) metode kelebihan beban. Jika Anda memanggil metode ini tanpa menentukan waktu habis, Anda dapat memanggil CancelFullGCNotification metode jika Anda menunggu lebih lama dari yang diinginkan.

Anda harus mengikuti metode ini dengan panggilan ke WaitForFullGCComplete metode untuk memastikan bahwa Anda telah memiliki pengumpulan sampah penuh. Memanggil metode ini saja menyebabkan hasil yang tidak ditentukan.

Lihat juga

Berlaku untuk

WaitForFullGCApproach(Int32)

Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs
Sumber:
GC.CoreCLR.cs

Mengembalikan, dalam periode waktu habis yang ditentukan, status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

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

Parameter

millisecondsTimeout
Int32

Lamanya waktu untuk menunggu sebelum status pemberitahuan dapat diperoleh. Tentukan -1 untuk menunggu tanpa batas waktu.

Mengembalikan

Status pemberitahuan pengumpulan sampah terdaftar.

Atribut

Pengecualian

millisecondsTimeout harus non-negatif atau kurang dari atau sama dengan Int32.MaxValue atau -1.

Keterangan

Gunakan enumerasi yang GCNotificationStatus dikembalikan oleh metode ini untuk menentukan status pemberitahuan pengumpulan sampah saat ini yang didaftarkan dengan menggunakan RegisterForFullGCNotification metode . Anda juga dapat menggunakan WaitForFullGCComplete metode untuk menentukan apakah pengumpulan sampah penuh telah selesai.

Perhatikan bahwa metode ini segera kembali setiap kali status pemberitahuan pengumpulan sampah diperoleh, terlepas dari nilai yang ditentukan oleh millisecondsTimeout. Jika status pemberitahuan pengumpulan sampah tidak diperoleh sebelum millisecondsTimeout waktu habis, metode ini mengembalikan NotApplicable.

Ketika enumerasi kembali Succeeded, Anda dapat melakukan tugas seperti mencegah objek tambahan dialokasikan dan menginduksi koleksi sendiri dengan Collect metode . Perhatikan bahwa pemberitahuan tidak menjamin bahwa pengumpulan sampah penuh akan terjadi, hanya kondisi yang telah mencapai ambang batas yang menguntungkan untuk terjadinya pengumpulan sampah penuh.

Anda dapat memanggil CancelFullGCNotification metode ketika Anda tidak dapat menunggu periode waktu habis berlalu.

Anda harus mengikuti metode ini dengan panggilan ke WaitForFullGCComplete metode untuk memastikan bahwa Anda telah memiliki pengumpulan sampah penuh. Memanggil metode ini saja menyebabkan hasil yang tidak ditentukan.

Lihat juga

Berlaku untuk

WaitForFullGCApproach(TimeSpan)

Sumber:
GC.cs
Sumber:
GC.cs
Sumber:
GC.cs

Mengembalikan, dalam periode waktu habis yang ditentukan, status pemberitahuan terdaftar untuk menentukan apakah pengumpulan sampah penuh dan pemblokiran oleh runtime bahasa umum akan segera terjadi.

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

Parameter

timeout
TimeSpan

Batas waktu menunggu pendekatan GC penuh

Mengembalikan

Status pemberitahuan GC penuh terdaftar

Berlaku untuk