powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7 и FastMM
6 сообщений из 31, страница 2 из 2
Delphi 7 и FastMM
    #39553303
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
constructor TMyThread.Create(CreateSuspended: Boolean; var Apath1, Apath2, Akind, Alog, Aexe,Auser : string);
		begin
  		inherited Create(CreateSuspended);
  		Priority:= tpLower;
  		FreeOnTerminate:= True;
  		Fpath1:= Apath1;
  		Fpath2:= Apath2;
  		Fkind:= Akind;
  		Flog:=Alog;
  		Fexe:=Aexe;
  		Fuser:=Auser;
  	if CreateSuspended then Resume;
		end;


Еще надо убрать нафиг из параметров конструктора CreateSuspended, а делать 1 из 2:
1. Либо всегда передавать True в inherited Create и перед end делать Resume;
2. Либо (лучше и логичнее) убрать Resume, а на его место перенести inherited Create( False );
...
Рейтинг: 0 / 0
Delphi 7 и FastMM
    #39553326
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поймал ловушкой ошибку приведения типов - не кастовалась строка к дате, данные мои, но почему-то copy не с того символа. Странно, просмотрел логи, не нашел криминала. Сейчас почистил все логи, сделал чтобы выводилась строка полностью в ошибке:
on E : Exception do ShowMessage(E.ClassName+' ошибка с сообщением : '+E.Message + '-' + List1.Strings[t] );

Жду как невеста первого раза исключений, а их нет. И память вроде не утекает.
...
Рейтинг: 0 / 0
Delphi 7 и FastMM
    #39553583
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЕще надо убрать нафиг из параметров конструктора CreateSuspended, а делать 1 из 2:
1. Либо всегда передавать True в inherited Create и перед end делать Resume;
2. Либо (лучше и логичнее) убрать Resume, а на его место перенести inherited Create( False );не надо так делать в конструкторе,
запуск потока идёт после отработки конструктора
...
Рейтинг: 0 / 0
Delphi 7 и FastMM
    #39553620
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

Стоит убрать FastMM4 и добавить нормальный логгер исключений + детектор утечек. Либо EurekaLog, либо MadExcept.
...
Рейтинг: 0 / 0
Delphi 7 и FastMM
    #39553643
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarА как настроить, чтобы конкретно в коде показывал, в какой строке утечка?В опциях проекта указать генерировать map файлы
...
Рейтинг: 0 / 0
Delphi 7 и FastMM
    #39553647
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)YuRockЕще надо убрать нафиг из параметров конструктора CreateSuspended, а делать 1 из 2:
1. Либо всегда передавать True в inherited Create и перед end делать Resume;
2. Либо (лучше и логичнее) убрать Resume, а на его место перенести inherited Create( False );не надо так делать в конструкторе,
запуск потока идёт после отработки конструктора
Именно по этой причине я и дал этот совет.
Зачем ТС'а путать? Он и сам запутается.
Да, поток в любом случае создается Suspended и запуск происходит в AfterConstruction, но так нагляднее, как минимум.

Дальше. Почему я порекомендовал больше
Код: pascal
1.
2.
3.
4.
5.
constructor TMyThread.Create;
begin
  // инициализация параметров
  inherited Create( False );
end;


а не
Код: pascal
1.
2.
3.
4.
5.
6.
constructor TMyThread.Create;
begin
  inherited Create( True );
  // инициализация параметров
  Resume;
end;


Потому, что это, грубо говоря, идиотизм. Нет смысла запускать остановленный поток, инициализировать его параметры, а затем продолжать, если есть элементарная возможность вначале всё инициализировать, а затем - запустить. Элементарно меньше кода.
CreateSuspended нужен вообще для другого. Чтобы создать, а потом, если надо, через пол часа запустить. Ну, там, пул какой-нибудь, или еще что.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi 7 и FastMM
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]