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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2011, 21:08   #1
JDredd
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 13
Вопрос Видео с экрана. Утечка памяти.

Программа по таймеру берет скриншот выбранного окна и отображает его в PictureBox.
Задержка таймера 20 мс.

Во время работы, выделение памяти периодически скачет от 30 до 500 МБ.
(память выделяется линейно пару секунд, а потом резкое освобождение и по новой)

Как уменьшить пиковое выделение памяти ?
Код:
        Image scrIMG;
		//  ....

        void linkWindow() // get HWND from textBox1
        {
            int x = Int32.Parse(textBox1.Text, System.Globalization.NumberStyles.HexNumber);
            IntPtr hwnd = new IntPtr(x);
            scrIMG = WindowImageCapture.CaptureWindow(hwnd);
        }

        void loadImage()
        {
            imgDisplay.Image = scrIMG; //PictureBox
        }

        //  .......

        private void timer1_Tick(object sender, EventArgs e)
        {
            linkWindow();
            loadImage();
        }
Класс для получения скриншотов WindowImageCapture - во вложении
Вложения
Тип файла: txt screenshot.class.cs.txt (5.0 Кб, 145 просмотров)
JDredd вне форума Ответить с цитированием
Старый 03.07.2011, 21:29   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

утечек у вас нет, просто это особенность работы сборщика мусора.
вызывайте его явно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.07.2011, 07:24   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Как уменьшить пиковое выделение памяти ?
Но зачем? Уткин и Ко
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятная утечка памяти FReeZ777 Работа с сетью в Delphi 14 11.02.2012 18:16
Утечка памяти Juffin Общие вопросы Delphi 3 02.11.2010 12:11
Утечка памяти ZvEr_HaCkEr Свободное общение 13 24.09.2010 19:30
утечка памяти в С++ vengo Общие вопросы C/C++ 9 10.06.2008 21:24
DrawState - утечка памяти? unnamed Win Api 2 11.04.2007 18:36