Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2017, 14:04   #1
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию Out of memory PictureBox

Есть класс, который используется для вывода графической анимации некоего процесса.
PHP код:
        private Bitmap bmp;
        private 
Graphics g;
        private 
int X;
        private 
int Y;
        private 
bool temp
        private 
double[,] Temp;

        
//конструктор
        
public GraphicsForm(int Xint Y) {
            
this.X;
            
this.Y;
           
            
InitializeComponent();
            
pb.SizeMode PictureBoxSizeMode.AutoSize;
            
bmp = new Bitmap(XY);
            
Graphics.FromImage(bmp);

        }

      
//этот метод вызывается в цикле в методе другого класса
        
public void DrawDisplay(double [,] Tempfloat x0float len) {
                
this.Temp Temp;
                
DrawTemp(Temp);
                
pb.Image bmp;         
               
pb.Refresh();
        }

  

        
void DrawTemp(double[,] Temp) {  
                    .......  
                    
Brush br = new SolidBrush(color);
                    
g.FillRectangle(brgridX*igridY*jgridXgridY);
        } 
проблема в том, что если я вывожу достаточно большую картинку, то через некоторое время бросается исключение на pb.Refresh() типа Out of Memory. Да и диспетчере задач видно как приложение стремительно сжирает память. В чем может быть причина и как ее исправить и почему сборщик мусора не срабатывает автоматически.
PANDA8 вне форума Ответить с цитированием
Старый 21.05.2017, 18:04   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Лучше скинь весь проект, пока ничего не понятно.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 21.05.2017, 18:11   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Да переполнение, наверное, у него там просто да и все.
Cuprum5 вне форума Ответить с цитированием
Старый 21.05.2017, 18:40   #4
PANDA8
Пользователь
 
Регистрация: 28.03.2011
Сообщений: 38
По умолчанию

ну метод DrawDisplay() вызывается в цикле в другом классе где-то 1000раз. Проект оч. большой, это лишь кусочек 5%
PANDA8 вне форума Ответить с цитированием
Старый 21.05.2017, 19:20   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

смотрите что из применяемых классов Disposable, и не забывается подчищать.
сборщик мусора слабо спасает от большого скачка неуправляемых ресурсов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Out of memory... Klim Bassenger Microsoft Office Excel 9 17.01.2018 12:56
Load exe into memory and run it from memory artush1984 Win Api 10 06.02.2012 18:43
Out of memory Bogoley4ik C++ Builder 3 09.04.2011 00:02
Out of memory zumm Общие вопросы Delphi 12 24.05.2010 14:03