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];
で発生するか、というと(予想どおり)発生しない。