Сколько растровых изображений я могу создать в .NET? - PullRequest
0 голосов
/ 09 июля 2010

.NET Bitmap использует GDI +

Я хочу знать, сколько растровых изображений я могу создать.

Будет ли утечка памяти при создании слишком большого количества растровых изображений?

Ответы [ 6 ]

2 голосов
/ 09 июля 2010

MSDN говорит:

Существует теоретический предел в 65 536 дескрипторов GDI на сеанс.Однако максимальное количество дескрипторов GDI, которое можно открыть за сеанс, обычно меньше, поскольку на него влияет доступная память.

Источник: http://msdn.microsoft.com/en-us/library/ms724291%28VS.85%29.aspx

2 голосов
/ 09 июля 2010

Предел дескрипторов GDI составляет 65536 за сеанс. Смотри http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx

2 голосов
/ 09 июля 2010

Память не будет течь, пока вы используете их для создания инфраструктуры.Класс Bitmap создан таким образом, что экземпляры располагаются при финализации, как это делает любой уважающий себя IDisposable, поэтому даже забыв о его утилизации, не вызовет проблем.это зависит от того, сколько памяти вам нужно для работы.

0 голосов
/ 15 июля 2010

Windows XP и Vista - ограничение по умолчанию

Предел по умолчанию в Windows XP и Vista составляет 10 000. Вы можете отслеживать количество объектов GDI, которые есть в приложении, из «диспетчера задач»

http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx

Примечание. Я тестировал PrintPreview с HashMorePages = True до тех пор, пока оно не сгенерирует исключение (около 4800 страниц), для каждой страницы требуется 2 объекта Gdi +.

0 голосов
/ 09 июля 2010

Вы можете столкнуться с проблемой утечки памяти, но вы можете решить ее, написав простой код

      using (frame) {
          frame.Save(outStream, jpegCodec, parameters);
      }
0 голосов
/ 09 июля 2010

Растровое изображение - это объект GDI +, и вы получаете ограниченное количество этих объектов в вашей системе.Конечно, вы можете настроить систему.Я не думаю, что вы получите утечку памяти, но системное исключение, если вы превысите этот предел.

...