可以加载到Windows窗体控件的最大数据量是多少?
问题描述:
我可以加载到表单控件的最大数据量是多少?可以加载到Windows窗体控件的最大数据量是多少?
根据我的经验,当超过500,000条记录添加到任何Windows窗体控件时,我的应用程序会消耗太多内存并挂起。任何线索?
答
是的,这会导致问题。
不要添加那么多的记录。
没人需要那么多。您需要做的是添加过滤功能,以便用户可以指定他/她想要使用的数据范围。
例如,让用户按日期缩小搜索范围(如果是时间敏感的数据),或者订单号范围,或者......好吧,无论如何。
但我可以保证你找到一种方法来添加500K行到网格或任何不是解决方案。
答
看起来您已经找到了应用的最大内存空间。
没有单一的措施。
应用程序内存还包括您的应用程序正在使用的GDI句柄,文件句柄,线程。 确保你没有使用任务管理器和喜欢的GDI句柄泄漏。
另外,向用户界面加载500,000条记录并不是一个好习惯,用户永远无法处理这么多信息,请通过使用分页或其他方式来更改您的练习。
答
我通常做的事情是限制屏幕上显示的记录数量,通常为20,但这取决于您尝试显示的数据类型。
我通常在此之后应用过滤,并将数据和修订记录计数返回给应用程序。如果用户希望能够看到所有的记录,他们可以导出到另一个应用程序(通常是Excel,这将打破,但也是XML)。
虽然没有人会读通过50万条记录。
答
这是一大堆数据;首先要做的是减少数据量 - 但是,由于您在标签中提到了DataGridView
,因此大数据场景中存在“虚拟模式”。请参阅MSDN上的here (overview)和here (howto)。
一些(但不是全部)其他基于列表的控件也具有“虚拟模式”支持。
+1指出“如果你必须问,你可能做错了什么。” (http://blogs.msdn.com/oldnewthing/archive/2007/07/18/3926581.aspx)。 – 2009-04-28 17:53:44