Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Подчеркнутый текст в label http://www.cyberforum.ru/windows-forms/thread1143104.html
Как сделать подчеркнутый текст в label при наведении мышкой? Добавлено через 1 час 6 минут upup
Работа с выбранными ячейками DataGridView C#
Здравствуйте, уважаемые программисты. Возникла такая проблема и пока не удаётся её решить. Пришлось обращаться к вам. Имеется форма с datagridview, на которую импортируется excel-файл с произвольным...
C# Учусь визуальному программированию. Работа в Microsoft Visual C#2010 Express
Для компонента Panel изменить: тип шрифта с помощью компонента TrackBar. При удержании мышки на бегунке должно появляться значение установленной величины. Компоненты разместила. Некоторые...
C# Подскажите.Как сделать чтоб при много кликов на прогу выдовала ошибку когда много кликаешь на программу и выдаёт ошибку ,эта программа уже запущена , как мне сделать? http://www.cyberforum.ru/windows-forms/thread1142891.html
C# Сложность с памятью и llist <Bitmap>, Picturebox http://www.cyberforum.ru/windows-forms/thread1142804.html
Если я не чищу bitmap1.Dispose() ;) то происходит утечка памяти, если очищаю то он не заносится в list, как быть? Вернее показывает что заносится, но в picturebox уже не отображается ...
Быстрый поиск и сортировка в datagridviewcomboboxcolumn C#
Подскажите, пожалуйста, как осуществить быстрый поиск (т.е. начиная писать слово он выводит все возможные варианты из списка) по datagridviewcomboboxcolumn. В простом Combobox это делается так: ...
Информационная система на C# C#
Всем доброго времени суток, уважаемые! Быстренько опишу ситуацию и задам вопросы. Предисловие: пишу дипломный проект - информационную систему на C# с помощью технологии ADO.NET. Сама система уже...
C# Ошибка 'projectname.Form1.Dispose(bool)': no suitable method found to override При запуске проекта выдает ошибку Dispose.. namespace Incercarea4 { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> ... http://www.cyberforum.ru/windows-forms/thread1142727.html
C# Как указать путь к файлу в Bitmap? http://www.cyberforum.ru/windows-forms/thread1142709.html
Ребят, подскажите пожалуйста как правильно указать путь к файлу? Bitmap MyBitmap = new Bitmap("Путь"); Как правильно то? Файл находится на диске D, в папке Сlock. Сам проект в той же папке
C# Форма теряет фокус MessageBox Всем привет! Удаляю строку из БД. Сделал подтверждение удаления на MessageBox Только вот при нажатии Да или Нет код выполнятся но теряется фокус формы. как можно исправить. Спасибо. var result... http://www.cyberforum.ru/windows-forms/thread1142688.html
al072
15 / 15 / 4
Регистрация: 03.02.2010
Сообщений: 133
10.04.2014, 06:22  [ТС] 0

Out of Memory Exception в программе для Windows Mobile

10.04.2014, 06:22. Просмотров 1229. Ответов 6
Метки (Все метки)

Ответ

1) у меня такое подозрение, что вы создаете гораздо больше контролов.
попробуйте в вашем методе ShowAnswer не создавать контрол, а обращаться к тому, который существует уже
2) перед загрузкой новой картинки удаляйте старую, приблизительно так:
------------------------------------------------------------------------------------------
1) Я наверное не совсем корректно описал свой метод, дело в том что каждый новый контрол создается со своим именем и местоположением в цикле, и устанавливать картинку на контрол который уже существует я не могу, мне необходимо загружать битмап для каждого вновь создаваемого PictureBox:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
     
     for (int i =0;i=20;i++)
     {
          private void ShowAnswer(int x,int y, string Name,int w,int h)
       {
          PictureBox = new PictureBox();
          PictureBox.BackColor = Color.Red;
          PictureBox.Location = new Point(x,y);
          PictureBox.Name = Name;
          PictureBox.Size = Size(w,h);
          PictureBox.Image = new Bitmap("\\Image01+i.ToString()");
         } 
      }
2) Я пробовол вызывать метод PictureBox.Image.Dispose() после каждой итерации цикла, чтобы картинка сперва была присвоена PictureBox, а затем ее ресурсы были освобождены, но в этом случаее при загрузке новой формы в которой динамически создаются эти контролы - я получаю Disposed object exception, что не удивительно, так как на форме не может быть отрисован уже уничтоженный элемент..
3) Я пробовал проходится в цикле по динамически созданным контролам и освобождать память выделенную под Bitmap уже после того, как все контролы созданы:

C#
1
2
3
4
5
6
7
foreach (Control cntrl in this.Controls)
{
     if (cntrl is PictureBox)
     {
         ((PictureBox)cntrl).Image.Dispose();
     }
}
Но это не помогает избавиться от Out of Memory exception, так как переполнение происходит именно в момент выделения памяти под каждый новый Bitmap. Вот если бы можно было каким либо образом в цикле, в котором создаются контролы с каждой итерацией сперва выделять память под Bitmap и в этой же итерации освобождать ее, то думаю OOM бы не возникало, но тогда вопрос в том как избавиться от Disposed object exception - ведь на форме не могут быть отрисованы уже высвобожденные из памяти Bitmapы.

Вернуться к обсуждению:
Out of Memory Exception в программе для Windows Mobile
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 06:22

Делаю Memory Manager Array с простым (int) exception последний элемент чудит
//array_hpp #ifndef Array_HPP #define Array_HPP #include &quot;Point.hpp&quot; #include &lt;iostream&gt; ...

Ошибка при написании класса: Unhandled exception std::bad_alloc at memory location
ПИшу свой клас Var, проблема в следующем из-за строчки first = first+1; вылетает ошибка ...

C# для Windows Mobile
Кто кодит под WM? Как развернуть свёрнутое приложение повторным нажатием на exe файл? пытался...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.