![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
Автор, лови.
Дисптечер задач показывает отваливание кусков памяти у proect1.exe при гибели очередного потока ![]()
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#22 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
Код:
Но кроме FStream.Free я ничего не понял, но это не работает с переменной типа String например, а в строчке где threads[message.WParam]:= nil; я так понял идет освобождение памяти занятой включая и потоков? |
|
![]() |
![]() |
![]() |
#23 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
деструктор для удаление говна созданного в конструкторе.
Он вызывается при окончании работы потока или при сбое. Перед тем, как поток закончит свой жизненный путь, я отсылаю сообщение в главную форму и зануляю его "ячейку" в массиве. Когда подохнут все потоки, можно занулить и весь массив. Кроме того, в любой момент, можно в цикле вызвать метод Terminate для потока что приведёт к скоропостижной и одновременной гибели каждого из них с освобождением памяти добавил к примочке кнопку на которой скоропостижное уничтожение всех неотработанных Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#24 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#25 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]() Цитата:
То есть если Код:
вот такой value : array of ТИП; то в деструкторе (или по окончанию работы с ним) нужно делать Finalize(переменная)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
|
![]() |
![]() |
![]() |
#26 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
А как же насчет еще парочки: ICefStringMultimap, ICefPostData, ICefRequest и ICefFrame? Как их можно наверняка почистить? Короче все переменные из threadvar засунул в Finalize, память занимаемая так и продолжает увеличиваться в вашем примере кода переменная объявлена внутри самой функции а не в начале после type, threadvar нельзя объявлять в потоке вроде как Последний раз редактировалось vipok72; 04.08.2015 в 20:00. |
|
![]() |
![]() |
![]() |
#27 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Зачем вообще огород городить комбинируя threadvar и ttread? Спокойно можно не использовать threadvar, не в этом месте обосновано её применение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#28 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() |
![]() |
![]() |
![]() |
#29 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
а зачем?
![]() Цитата:
Интерфейсы это единственный объект который программист не может принудительно освободить никогда, даже в однонитевом приложении/ мусор порождённый от IDispatch посредством OLE технологии удаляется через метод Release (_Release). В некоторых случаях, нужно вызывать встроенные конструкторы. Например на объекты MS Office нужно сначала вызывать Quit а потом занулять переменную без Release. Короче, порождение от IDispatch это геморой 70-го уровня после которого может случится вот это ![]()
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
|
![]() |
![]() |
![]() |
#30 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Освобождение памяти | Smolya | Общие вопросы C/C++ | 4 | 23.02.2015 19:38 |
Освобождение памяти | SAMOUCHKA | Общие вопросы по Java, Java SE, Kotlin | 7 | 26.01.2014 21:24 |
Освобождение памяти | millepetrozza | Общие вопросы C/C++ | 4 | 27.10.2012 15:13 |
Освобождение памяти | PUH | Помощь студентам | 1 | 22.11.2009 17:14 |
Освобождение памяти | VadEr | Общие вопросы Delphi | 2 | 17.04.2009 22:23 |