Pewawancara bertanya kepada saya tentang hal ini hari ini ... apakah ada jawaban?
Pewawancara bertanya kepada saya tentang hal ini hari ini ... apakah ada jawaban?
Jawaban:
System.GC.Collect()memaksa pengumpul sampah untuk berlari. Ini tidak direkomendasikan tetapi dapat digunakan jika situasi muncul.
Tidak disarankan untuk memanggil gc secara eksplisit, tetapi jika Anda menelepon
GC.Collect();
GC.WaitForPendingFinalizers();
Itu akan memanggil GC secara eksplisit di seluruh kode Anda, jangan lupa untuk menelepon GC.WaitForPendingFinalizers();setelah GC.Collect().
WaitForPendingFinalizerstidak selalu memberikan "kinerja yang lebih baik": itu hanya memblokir sampai semua objek dalam antrian finalisasi telah selesai (objek yang mungkin telah diletakkan di sana oleh panggilan Anda sebelumnya Collect). Jika Anda ingin kesempatan untuk benda-benda itu dikumpulkan maka Anda perlu panggilan lain Collect setelah menelepon WaitForPendingFinalizers.
WaitForPendingFinalizers?
GC.Collect()
dari MDSN ,
Gunakan metode ini untuk mencoba mendapatkan kembali semua memori yang tidak dapat diakses.
Semua objek, terlepas dari berapa lama mereka berada dalam memori, dipertimbangkan untuk koleksi; namun, objek yang direferensikan dalam kode terkelola tidak dikumpulkan. Gunakan metode ini untuk memaksa sistem untuk mencoba mendapatkan kembali jumlah maksimum memori yang tersedia.
Perlu diingat, bahwa Pengumpul Sampah mungkin tidak selalu membersihkan apa yang Anda harapkan ...
Anda tidak ingin memaksa pengumpul sampah untuk menjalankan.
Namun, jika Anda pernah melakukannya (sebagai latihan murni akademis, tentu saja):
GC.Collect()
Saya pikir .Net Framework melakukan ini secara otomatis tetapi untuk berjaga-jaga. Pertama, pastikan untuk memilih apa yang ingin Anda hapus, dan kemudian memanggil pemulung:
randomClass object1 = new randomClass
...
...
// Give a null value to the code you want to delete
object1 = null;
// Then call the garbage collector to erase what you gave the null value
GC.Collect();
Saya pikir itu saja .. Semoga saya bisa membantu seseorang.