System.InsufficientMemoryException

使用可能なメモリが十分に残っているかどうかのチェックで、要件が満たされなかった場合にスローされます。

[実験ソース(C#)]

using System;

using System.Runtime;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            MemoryFailPoint mfp = new MemoryFailPoint(4 << 10); // MB単位(4GB)

        }

    }

}

[結果]


ハンドルされていない例外: System.InsufficientMemoryException: 操作の要求を満足させるメモリが不足しています。このシステムでは、この要求を満足させられない可能性があります。32 ビット システムの場合、3 GB モードで起動することを検討してください。
場所 System.Runtime.MemoryFailPoint..ctor(Int32 sizeInMegabytes)
場所 ConsoleApplication1.Program.Main(String[] args) 場所 Program.cs:行 9

[対処など]
実験したPCは、32ビットのVista
十分なメモリが残っているか「チェック」する際に発生するとのことなので、MemoryFailPoint を使ってチェックを行ったところ発生。では、
byte[] a = new byte[int.MaxValue];
で発生するか、というと(予想どおり)発生しない。