|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.08.2015, 18:24 | #21 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Автор, лови.
Дисптечер задач показывает отваливание кусков памяти у proect1.exe при гибели очередного потока
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
04.08.2015, 18:37 | #22 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Цитата:
Код:
Но кроме FStream.Free я ничего не понял, но это не работает с переменной типа String например, а в строчке где threads[message.WParam]:= nil; я так понял идет освобождение памяти занятой включая и потоков? |
|
04.08.2015, 18:57 | #23 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
деструктор для удаление говна созданного в конструкторе.
Он вызывается при окончании работы потока или при сбое. Перед тем, как поток закончит свой жизненный путь, я отсылаю сообщение в главную форму и зануляю его "ячейку" в массиве. Когда подохнут все потоки, можно занулить и весь массив. Кроме того, в любой момент, можно в цикле вызвать метод Terminate для потока что приведёт к скоропостижной и одновременной гибели каждого из них с освобождением памяти добавил к примочке кнопку на которой скоропостижное уничтожение всех неотработанных Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
04.08.2015, 19:10 | #24 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Цитата:
Код:
|
|
04.08.2015, 19:31 | #25 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Цитата:
То есть если Код:
вот такой value : array of ТИП; то в деструкторе (или по окончанию работы с ним) нужно делать Finalize(переменная)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
04.08.2015, 19:48 | #26 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Цитата:
А как же насчет еще парочки: ICefStringMultimap, ICefPostData, ICefRequest и ICefFrame? Как их можно наверняка почистить? Короче все переменные из threadvar засунул в Finalize, память занимаемая так и продолжает увеличиваться в вашем примере кода переменная объявлена внутри самой функции а не в начале после type, threadvar нельзя объявлять в потоке вроде как Последний раз редактировалось vipok72; 04.08.2015 в 20:00. |
|
04.08.2015, 20:03 | #27 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Зачем вообще огород городить комбинируя threadvar и ttread? Спокойно можно не использовать threadvar, не в этом месте обосновано её применение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.08.2015, 20:16 | #28 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
|
04.08.2015, 22:37 | #29 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
а зачем?
Цитата:
Интерфейсы это единственный объект который программист не может принудительно освободить никогда, даже в однонитевом приложении/ мусор порождённый от IDispatch посредством OLE технологии удаляется через метод Release (_Release). В некоторых случаях, нужно вызывать встроенные конструкторы. Например на объекты MS Office нужно сначала вызывать Quit а потом занулять переменную без Release. Короче, порождение от IDispatch это геморой 70-го уровня после которого может случится вот это
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
04.08.2015, 23:57 | #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 |