MemoryFailPoint(Int32) Constructor

Definitie

Initialiseert een nieuw exemplaar van de MemoryFailPoint klasse, waarbij de hoeveelheid geheugen wordt opgegeven die nodig is voor een geslaagde uitvoering.

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)

Parameters

sizeInMegabytes
Int32

De vereiste geheugengrootte, in megabytes. Dit moet een positieve waarde zijn.

Kenmerken

Uitzonderingen

De opgegeven geheugengrootte is negatief of 0.

Er is onvoldoende geheugen om te beginnen met het uitvoeren van de code die door de poort wordt beveiligd.

Voorbeelden

In het volgende voorbeeld ziet u hoe u de hoeveelheid geheugen kunt bepalen die een methode nodig heeft bij het uitvoeren. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de MemoryFailPoint klasse.

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;
}

Opmerkingen

De hoeveelheid geheugen die door uw toepassing wordt gebruikt om een werkitem te verwerken, kan empirisch worden bepaald. Als u de hoeveelheid geheugen wilt schatten die uw toepassing nodig heeft om een aanvraag te verwerken, kunt u overwegen de GC.GetTotalMemory methode te gebruiken om de hoeveelheid geheugen te bepalen die beschikbaar is voor en na het aanroepen van de methode die het werkitem verwerkt. Zie de MemoryFailPoint klasse voor een codevoorbeeld dat dynamisch de waarde voor de sizeInMegabytes parameter bepaalt.

Van toepassing op