MemoryFailPoint(Int32) Konstruktor
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.
Menginisialisasi instans MemoryFailPoint baru kelas, menentukan jumlah memori yang diperlukan untuk keberhasilan eksekusi.
public:
MemoryFailPoint(int sizeInMegabytes);
public MemoryFailPoint (int sizeInMegabytes);
[System.Security.SecurityCritical]
public MemoryFailPoint (int sizeInMegabytes);
new System.Runtime.MemoryFailPoint : int -> System.Runtime.MemoryFailPoint
[<System.Security.SecurityCritical>]
new System.Runtime.MemoryFailPoint : int -> System.Runtime.MemoryFailPoint
Public Sub New (sizeInMegabytes As Integer)
Parameter
- sizeInMegabytes
- Int32
Ukuran memori yang diperlukan, dalam megabyte. Ini harus berupa nilai positif.
- Atribut
Pengecualian
Ukuran memori yang ditentukan negatif atau 0.
Memori tidak mencukupi untuk memulai eksekusi kode yang dilindungi oleh gerbang.
Contoh
Contoh berikut menunjukkan cara menentukan jumlah memori yang diperlukan metode saat mengeksekusi. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk MemoryFailPoint kelas .
private static int EstimateMemoryUsageInMB()
{
int memUsageInMB = 0;
long memBefore = GC.GetTotalMemory(true);
int numGen0Collections = GC.CollectionCount(0);
// Execute a test version of the method to estimate memory requirements.
// This test method only exists to determine the memory requirements.
ThreadMethod();
// Includes garbage generated by the worker function.
long memAfter = GC.GetTotalMemory(false);
// If a garbage collection occurs during the measuring, you might need a greater memory requirement.
Console.WriteLine("Did a GC occur while measuring? {0}", numGen0Collections == GC.CollectionCount(0));
// Set the field used as the parameter for the MemoryFailPoint constructor.
long memUsage = (memAfter - memBefore);
if (memUsage < 0)
{
Console.WriteLine("GC's occurred while measuring memory usage. Try measuring again.");
memUsage = 1 << 20;
}
// Round up to the nearest MB.
memUsageInMB = (int)(1 + (memUsage >> 20));
Console.WriteLine("Memory usage estimate: {0} bytes, rounded to {1} MB", memUsage, memUsageInMB);
return memUsageInMB;
}
Keterangan
Jumlah memori yang digunakan oleh aplikasi Anda untuk memproses item kerja dapat ditentukan secara empirik. Untuk memperkirakan jumlah memori yang dibutuhkan aplikasi Anda untuk memproses permintaan, pertimbangkan untuk menggunakan GC.GetTotalMemory metode untuk menentukan jumlah memori yang tersedia sebelum dan sesudah memanggil metode yang memproses item kerja.
MemoryFailPoint Lihat kelas untuk contoh kode yang secara dinamis menentukan nilai untuk sizeInMegabytes
parameter .