我正在使用 WCF 数据服务从我的 winforms 应用程序中的服务器获取数据。我正在尝试显示具有数百万条记录的庞大报告。尽管我正在明智地获取数据页面并将其存储到集合中,但内存不足。
这是用于查找总记录并为 List 分配内存的代码。
int totalRecords = ReportingService.Instance.CountRecords_ReportItemWiseSell(d1, d2);
List<Report_ItemWiseSellEntity> reportItems = new List<Report_ItemWiseSellEntity>(totalRecords);
这是收集所有分页数据的代码
int totalPageCount = (totalRecords / pageSize) + 1;
lvReport.Items.Clear();
for (int i = 1; i <= totalPageCount; i++){
var tmpItems = new List<Report_ItemWiseSellEntity>();
tmpItems = ReportingService.Instance.GetItemWiseSellReport(d1, d2, i, pageSize);
reportItems.AddRange(tmpItems);
... //other stuff
tmpItems = null;
Application.DoEvents();
}
任何人都可以建议如何克服这个内存问题。还有其他选择吗?感谢您分享您的智慧和时间。