![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| RaIDeR |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2005 Репутация: 1 Всего: 4 |
Вобщем Я создаю поток так:
Proc - это процедурина в которой происходит цикл(внутри цикла всё что угодно) Всё то время пока исполняется процедура прога в наглую "жрёт" память, после того как проца отроботала память не освобождается, даже если сделать так:
Что нужно сделать для того чтобы прога освобождала "съеденную" память ? Ведь если например нужно будет запускать этот поток неоднократно, то скока-ж памяти тогда потребуется ? |
||||
|
|||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 70 Всего: 191 |
О том, когда нужно освободить память, решает Винда. Возможно, она захочет подержать её какое-то время, и лишь потом освободить.
|
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
RaIDeR, а почему ты не хочешь использовать класс TThread? Там есть деструктор Destroy, каторый завершает поток и высвобождает все ресурсы, связанные с объектом TThread.
Добавлено @ 17:06 А еще своиство FreeOnTerminate -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| RaIDeR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2005 Репутация: 1 Всего: 4 |
Poseidon, где можно по подробней почитать/ознакомиться с классом TThread ?
ps Первый раз с потоками связался. |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 00:52 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Вот потому-то и винда не освобождает сразу память. Тебе нужно почитать статейку про менеджер памяти WinXP и о встроенной оптимизации. |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Как всегда рекомендую статью Многопоточность - как это делается в Дельфи. (Перевод статьи "Martin Harvey. Multithreading - The Delphi Way." сделанный Борисом Новгородовым)
... С памятью не все просто. Есть несколько обязательных правил: 1. Память выделяемая потоку под стек распределяется и освобождается системой. Т.е. при корректном завершении потока о ней заботиться не надо. 2. Память выделяемую явно в процедуре потока должна освобождать сама процедура потока. 3. Память выделенная под создаваемые потоком Delphi-объекты, должна освобождаться самим потоком. Т.е. Все созданные потоком объекты должны им-же и уничтожаться. 4. Хендл потока, как и все созданные им хендлы обязательно должны быть закрыты как только станут не нужными. Иначе, это тоже может приводить к "утечке" памяти. Например, см. последний фрагмент из http://forum.vingrad.ru/index.php?showtopi...ndpost&p=476565 Но, даже при их соблюдении, снаружи все может выглядеть не так пристойно как хочется Напомню так же, что при завершении программы, почти все выделенные ей ресурсы автоматически освобождаются системой. Для коротко живущих (быстро исполняемых) программ, можно этим пользоваться -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| RaIDeR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2005 Репутация: 1 Всего: 4 |
Спасибо БОЛЬШОЕ !
Где бы эту книгу скачать ? |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Блин. Ну народ совсем обленился. Просто кликнуть по ссылке уже не могут. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| RaIDeR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 20.6.2005 Репутация: 1 Всего: 4 |
Петрович, сорри ... блин, сорри ещё раз
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |