Albo aplikacja zużyła dostępną pamięć lub masz problem z fragmentacją sterty.
W pierwszym przypadku utworzyłeś wystarczającą ilość obiektów, aby zająć całą pamięć i nadal masz do nich odniesienie, aby garbage collector nie mógł ich wyczyścić.
W drugim przypadku, fragmentacja sterty, próbujesz utworzyć obiekt, który jest większy niż największy ciągły kawałek pamięci w stercie. Jest to rzadsze, ale na pewno zdarza się to w niektórych przypadkach. Normalna sterty zostanie skompaktowana podczas przebiegu w gc, ale duża sterta obiektu nie będzie.
Na stronie MSDN znajduje się dobry article dotyczący sterty dużych obiektów.
Edycja: Zapamiętałem inny sposób na wydostanie się z pamięci. Możesz spróbować utworzyć obiekt większy niż 2 GB. To jest maksymalny rozmiar obiektu w .NET, nawet w wersji 64-bitowej.
Po pierwsze, wspomnij przynajmniej o środowisku (o ile jest) na twoje pytanie. Przynajmniej .Net i Java mają wyjątek OOM. Po drugie, 2) nie jest to nawet właściwe pytanie. O co pytasz? Głosowanie w celu zamknięcia. – sleske
1) Zasobnik jest .Net C# 2) dlaczego te pytania nie są właściwe – Buzz
Cóż, pytanie 1) pytanie, ale tak ogólne, że tak naprawdę nie ma sensownej odpowiedzi. 2) nie jest pytaniem, a 3) powinno przynajmniej uzyskać znak zapytania. Spróbuj użyć poprawnej interpunkcji i pisowni, a co najważniejsze i podaj kontekst. – sleske