2016-05-22 7 views
1

Ich fand, dass System.Exception erfordert viel Speicherzuweisung (viele String s, auch IDictionary). Was passiert, wenn nicht genügend Speicher vorhanden ist, um eine OutOfMemoryException zu konstruieren?Was passiert, wenn kein Speicher vorhanden ist, um eine OutOfMemoryException in C# zu erstellen?

Nach der Suche fand ich eine ähnliche Frage: What happens when there's insufficient memory to throw an OutOfMemoryError? Funktioniert CLR so?

+2

IIRC, die CLR auch Pre-ordnet, dass. – SLaks

Antwort

1

Ich habe den Quellcode coreclr gefunden. Es scheint, dass die CLR einige Ausnahmeklassen vorbelegt.

3

Wie Sie (Cu2s) erwähnt, das Framework vor einige Objekte zuweisen. Das OutOfMemory ist nicht das einzige. StackOverflow wird natürlich auch benötigt.

Siehe Quelle here

Und auch dieses blog post

Sie können es selbst in WinDbg oder einem anderen Werkzeug sehen.

Zum Beispiel, wenn ich diesen Code renne:

static void Main() 
{ 
    Console.Read(); 
} 

ich in dem Haufen sehen folgendes:

enter image description here