Delphi Spring4D的IList存在内存溢出问题

5

我正在使用Stefan Glienke精美的Delphi框架Spring4D中的IList。

我有一个IList列表,我在应用程序运行期间多次重新填充此列表。因此,经过两三个小时后,我的列表会出现内存溢出。

这是我如何填充我的列表:

  list := TCollections.CreateList<TVisitor>;

  for i := 0 to dataSet.RecordCount - 1 do begin
        item := TVisitor.Create ();

        item.Surname := dataSet.FieldByName ( 'firstname' ).AsString;
        item.Name := dataSet.FieldByName ( 'secondname' ).AsString;
        item.Patronymic := dataSet.FieldByName ( 'thirdname' ).AsString;
        item.CardNumber := dataSet.FieldByName ( 'cardnumber' ).AsString;

        list.Add ( item );

        dataSet.Next ();
  end;

Clear()方法并不释放内存,所以每次我填充列表时,Windows任务管理器会增加我的应用程序的内存使用量:(

1个回答

8
您的列表没有释放TVisitor实例。
创建方式如下:
TCollections.CreateList<TVisitor>(True);

哇,太简单了!谢谢Stefan。现在它完美地运作了。 - Aptem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接