Я создал небольшое многопоточное приложение, и я пытаюсь преобразовать его в OmniThreadLibrary.Я использую Virtualtreeview для отображения журнала и статуса / результатов.Журнал Vst имеет только два столбца, а запись содержит только два строковых поля (очень просто, внутри записи нет объектов).
Используя проект DEMO, который поставляется с OTL (пул потоков # 11), я изменил проект, чтобы использовать VirtualTreeview вместо списка.Когда я запускаю «Задачу» из демо-версии, утечки памяти нет, но если я запускаю «Выполнить задачу» более одного раза, произойдет утечка памяти.Утечка памяти произойдет, если я выполню какую-либо задачу более одного раза.Если я вообще не использую VirtualTreeView, утечки памяти не происходит в любое время.Просто когда я использую VST и когда задача запускается более одного раза.
Я использую событие FreeNode и очищаю строки, и даже пытался использовать Finalize ...
пример:
procedure TFormMain.vstLogFreeNode(Sender: TBaseVirtualTree;
Node: PVirtualNode);
var
LogData: PTreeLogData;
begin
LogData:=Sender.GetNodeData(Node);
if Assigned(LogData) then begin
LogData^.Msgtype := '';
LogData^.Msg := '';
end;
//Finalize(LogData^);
end;
почему я получаю утечку памяти, когда задача запускается более одного раза?Delphi 2010 с FastMM4 последней версии VirtualTreeview и OTL