GC.WaitForFullGCApproach Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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