2016-08-07 3 views
0

に私は、エラーメッセージが出てい:型 'System.OutOfMemoryExceptionに' のSystem.OutOfMemoryExceptionには使用辞典<処理鍵、TValue>

例外がスローされました。

しよう:

try 
{ 
    var dict = new Dictionary<int, int>(); 
    for (int i = 0; i <= Int32.MaxValue; i++) 
    { 
     dict.Add(i, i); 
    } 
} 
catch (Exception e) 
{ 
    Console.WriteLine(e.Message); 
} 

をそれは30代についての私のシステムをダンプです。

私のシステム:

1

私の質問:2147483647 + 1 = 2147483648要素を格納(と何もしない)するには、.NETは、2GBのRAMよりも多くを必要としていますか?高いですか?

答えて

3

あなたはこの記事をお読みください:あなたは、そのStringBuilderので定義された長さ 超えStringBuilderオブジェクトを拡張しようとしている

“Out Of Memory” Does Not Refer to Physical Memory

OutOfMemoryException例外は、2つの主要な原因があります。 MaxCapacityプロパティ。

共通言語ランタイムは、操作を正常に実行するのに十分な連続メモリ を割り当てることができません。この例外は、メモリが 割り当てを必要とする任意のプロパティ代入またはメソッド呼び出しの によってスローされます。 OutOfMemoryException例外の原因の詳細については、「メモリ不足」が 物理メモリを参照していないを参照してください。

このタイプのOutOfMemoryException例外は、致命的なエラー を表します。例外を処理する場合は、 のように、Environment.FailFastメソッドを呼び出して アプリケーションを終了し、システムイベントログにエントリを追加するcatchブロック( )を含める必要があります。

関連する問題