Entweder hat Ihre Anwendung den verfügbaren Arbeitsspeicher belegt oder Sie haben ein Problem mit der Heapfragmentierung.
Im ersten Fall haben Sie genügend Objekte erstellt, um den gesamten Speicher zu belegen, und Sie haben immer noch einen Verweis darauf, damit der Garbage Collector sie nicht bereinigen kann.
Im zweiten Fall, Heapfragmentierung, versuchen Sie, ein Objekt zu erstellen, das größer als der größte zusammenhängende Chunk des Speichers im Heap ist. Dies ist seltener, aber in manchen Fällen passiert es auch. Der normale Heap wird während GC-Läufen kompaktiert, der große Objekt-Heap jedoch nicht.
Es gibt eine gute article auf MSDN über den großen Objekt-Heap.
Edit: Ich erinnerte mich an eine andere Möglichkeit, aus dem Speicher zu bekommen. Sie können versuchen, ein Objekt zu erstellen, das größer als 2 GB ist. Das ist die maximale Objektgröße in .NET sogar auf 64-Bit.
Erstens, zumindest erwähnen die Umgebung (falls vorhanden) Ihre Frage ist etwa. Zumindest .Net und Java haben eine OOM-Ausnahme. Zweitens, 2) das ist nicht einmal eine richtige Frage. Was fragst du? Abstimmung zum Schließen. – sleske
1) Envoirmment ist .Net C# 2) warum das Ques nicht richtig ist – Buzz
Nun, Frage 1) eine Frage, aber so allgemein, dass es nicht wirklich eine sinnvolle Antwort hat. 2) ist keine Frage, und 3) sollte zumindest ein Fragezeichen bekommen. Bitte versuchen Sie es mit der richtigen Interpunktion und Rechtschreibung und vor allem mit dem Kontext. – sleske