MemoryFailPoint(Int32) MemoryFailPoint(Int32) MemoryFailPoint(Int32) MemoryFailPoint(Int32) Constructor

定義

正常に実行するために必要なメモリの量を指定して、MemoryFailPoint クラスの新しいインスタンスを初期化します。Initializes a new instance of the MemoryFailPoint class, specifying the amount of memory required for successful execution.

public:
 MemoryFailPoint(int sizeInMegabytes);
[System.Security.SecurityCritical]
public MemoryFailPoint (int sizeInMegabytes);
new System.Runtime.MemoryFailPoint : int -> System.Runtime.MemoryFailPoint
Public Sub New (sizeInMegabytes As Integer)

パラメーター

sizeInMegabytes
Int32 Int32 Int32 Int32

必要なメモリ サイズ (単位は MB)。The required memory size, in megabytes. 必ず正の値を指定します。This must be a positive value.

例外

指定したメモリ サイズが負の値です。The specified memory size is negative.

ゲートによって保護されているコードの実行を開始するためのメモリが不足しています。There is insufficient memory to begin execution of the code protected by the gate.

次の例では、実行するときに、メソッドが必要とするメモリの量を決定する方法を示します。The following example demonstrates how to determine the amount of memory a method requires when executing. このコード例が示されている例の一部、MemoryFailPointクラス。This code example is part of a larger example provided for the MemoryFailPoint class.

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

注釈

作業項目を処理するアプリケーションで使用されるメモリ量を経験的に決定できます。The amount of memory used by your application to process a work item can be determined empirically. アプリケーションが要求の処理に必要なメモリの量を推定するには、使用を検討して、GC.GetTotalMemoryメソッドをおよび作業項目を処理した後メソッドを呼び出すことの前に使用可能なメモリの量を決定します。To estimate the amount of memory your application needs to process a request, consider using the GC.GetTotalMemory method to determine the amount of memory available before and after calling the method that processes the work item. 参照してください、MemoryFailPointクラスの値を動的に決定するコード例については、sizeInMegabytesパラメーター。See the MemoryFailPoint class for a code example that dynamically determines the value for the sizeInMegabytes parameter.

セキュリティ

SecurityCriticalAttribute
直前の呼び出し元に対する完全な信頼が必要です。requires full trust for the immediate caller. このメンバーは、部分的に信頼されたまたは透過的なコードで使用することはできません。This member cannot be used by partially trusted or transparent code.

適用対象