Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Количество потоков всё время растёт?!


Страницы:   1 2

Ksenom ©   (2006-02-09 10:57:00) 

По работе столкнулся с такой проблемой.

В процессе работы я по таймеру создаю и вызываю поток:

procedure TForm1.StartMaket;
 var Maket:TMaket;
begin
 Maket:=TMaket.Create(true);
 Maket.FreeOnTerminate:=true;
 Maket.Resume;
end;

Сам поток в процессе инициализации запускает функцию:

procedure TMaket.Execute;
begin
 Processing;
end;

Функция, в общих чертах, через Mapi смотрит почту, пишет в базу, отпровляет письма и всё такое. Факт что процедура без проблем и ошибок выполняется до конца. Таким образом по идее после её выполнения поток должен уничтожиться и освободить занимаемую им память.

За сутки работы (каждые 10 минут старт потока) количество потоков с 3 увеличивается до 9 и продолжает медленно расти. При этом ошибок нет, так как я в сами потоки запихал много проверок на ошибки. Более того растёт объём занимаемой программой в системе памяти. С 3 Мб при старте за сутки вырастает до 25Мб.

Почему так и как с этим бороться?


Kolan   (2006-02-09 11:17:00) [21]

Таким образом по идее после её выполнения поток должен уничтожиться и освободить занимаемую им память.
А ты проверял. Он уничтожается?


Digitman   (2006-02-09 11:09:00) [22]


> Факт что процедура без проблем и ошибок выполняется до конца


Не факт.

Каким образом ты этот факт получаешь ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо