【问题标题】:Delphi Spring4D IList memory overflowDelphi Spring4D IList 内存溢出
【发布时间】:2015-07-22 09:04:51
【问题描述】:

我正在使用来自 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 任务管理器 inc 内存使用情况:(

【问题讨论】:

    标签: list delphi memory overflow spring4d


    【解决方案1】:

    您的列表不会释放 TVisitor 实例。

    创建是这样的:

    TCollections.CreateList<TVisitor>(True);
    

    【讨论】:

    • 天啊,太容易了!谢谢斯特凡。现在它完美地工作了。
    猜你喜欢
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2011-04-28
    相关资源
    最近更新 更多