|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.01.2018, 15:56 | #1 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Чтение файла в потоке. Не понятно что жрет память.
Доброе время суток.
Есть программа, которая генерирует лог в диапазоне от 1 до 10 секунд (каждые). Моя программа читает лог каждые 10сек. Чтоб не было ошибки: «Cannot open file …. процесс не может получить доступ к файлу, так как этот файл занят другим процессом.» Решил вынести чтение лога в отдельный поток. Код:
Код:
При каждом запуске таймера, у меня идет увеличение памяти. Спасибо за ответ. |
06.01.2018, 16:06 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Стринглист освобождаешь по исключению, а без исключения кто это делать будет?
Код:
Destroy из Execute это как?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
06.01.2018, 16:47 | #3 | |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
Цитата:
Код:
Код:
Да синхронизацию я забыл - спасибо наплмнили и с "Destroy" намутил... уберу его Последний раз редактировалось KBO; 06.01.2018 в 16:52. |
|
06.01.2018, 20:01 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
для самостоятельной остановки достаточно просто дойти до конца процедуры(убрав первоначальный цикл) или наиболее разумное предложение. наоборот оставить цикл и убрать(Timer) кучу новых потоков. а в цикле при необходимости добавить sleep() и тогда имеем ОДИН нормальный бесконечный(постоянно работающий) поток и можем при необходимости остановить его извне Код:
то остановлен и разрушен будет совсем другой поток, а старый уйдет в небытие с потерей (утечкой) ресурсов. глобальная переменная в потоке почти тоже что и VCL в нем.
программа — запись алгоритма на языке понятном транслятору
|
|
06.01.2018, 21:17 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
А я один не понял каким образом поток решает проблему с ошибкой доступа к файлу?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
06.01.2018, 22:09 | #6 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
|
06.01.2018, 22:11 | #7 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
bиз 4-х строк, оставил просто "Terminate".
Код:
А "Timer", использова просто для того чтоб через каждые 10сек, Последний раз редактировалось KBO; 06.01.2018 в 22:29. |
06.01.2018, 22:22 | #8 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
|
07.01.2018, 09:56 | #9 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Код:
Код:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 07.01.2018 в 10:26. |
|
07.01.2018, 21:14 | #10 |
Форумчанин
Регистрация: 11.06.2010
Сообщений: 525
|
и всеже я хочу понять что сжирает память.
БЕЗ следующих строк (использующихся в потоке), память НЕ теряется Код:
Последний раз редактировалось KBO; 07.01.2018 в 21:23. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пустое приложение жрет память | AlexAES | C++ Builder | 0 | 23.10.2017 22:29 |
Что быстрее, запись и чтение реестра или файла? | lollollollol | Общие вопросы Delphi | 13 | 21.11.2015 09:47 |
Цикл грузит процессор и жрет память. | DIgorevich | Общие вопросы Delphi | 3 | 29.07.2015 10:44 |
WEB-приложение жрет память | alexey_kip | Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) | 4 | 29.05.2015 16:55 |
Что за процесс такой. Жрет 95-97-100% ресурсов CPU | kzld | Windows | 7 | 11.02.2014 05:33 |