可以加载到Windows窗体控件的最大数据量是多少?

时间:2009-04-28 08:12:48

标签: c# windows datagridview listbox

我可以加载到表单控件上的最大数据量是多少?

我的应用程序占用太多内存,并且在我的经验中将超过500,000条记录添加到任何Windows窗体控件时会挂起。有线索吗?

4 个答案:

答案 0 :(得分:6)

是的,这会导致问题。

不要添加那么多记录。

没有人需要那么多。您需要做的是添加过滤功能,以便用户可以指定他/她想要使用的数据范围。

例如,让用户缩小搜索范围(如果是时间敏感数据)或订单号范围,或者......好吧,等等。

但我可以保证找到一种方法来向网格添加500K行或不是解决方案

答案 1 :(得分:3)

看起来您已找到应用的最大内存占用量。

没有单一措施。

应用程序内存还包括您的应用正在使用的GDI句柄,文件句柄,线程。 使用任务管理器确保您没有GDI句柄泄漏。

此外,向用户界面加载500,000条记录并不是一个好习惯,用户永远无法处理这么多信息,请通过分页或其他方式来改变您的做法。

答案 2 :(得分:1)

这是一大堆数据;首先要做的是减少数据量 - 但是,由于您在标记中提到DataGridView,因此对于大型数据方案存在“虚拟模式”。请参阅MSDN,here (overview)here (howto)

一些(但不是全部)其他基于列表的控件也具有“虚拟模式”支持。

答案 3 :(得分:0)

我通常做的事情是限制屏幕上显示的记录数量,通常为20,但这取决于您尝试显示的数据类型。

我通常在此之后应用过滤,并将数据和修订的记录数返回给应用程序。如果用户希望能够看到所有记录,他们可以导出到另一个应用程序(通常是Excel,它会破坏,但也会导致XML。)

但是,没有人会阅读50万条记录。