2015-03-13 37 views
-5

我正在使用后台工作程序来更新datagridview控件中的行。当我填充行时,我得到16,00,000行之后的System.OutOfMemoryException。为什么要来? 当这个异常通常来?使用BackgroundWorker类时出现System.OutOfMemoryException类

有谁能告诉我如何解决这个问题?

+2

16 million ???也许应该考虑使用分页... – rducom 2015-03-13 12:02:01

+0

请参阅[本页]的备注部分(https://msdn.microsoft.com/en-us/library/system.outofmemoryexception%28v=vs.110%29。 aspx)的常见原因。显然你有太多的行。 – cubrr 2015-03-13 12:03:59

+0

如异常所示,系统内存不足时,通常会发生此异常。 – 2015-03-13 12:07:58

回答

0

如果您需要处理160万行,您需要分批处理它们。你不能一次把它们记忆在记忆中。尤其是使用一个用户控件来增加显示这些行的开销。

看你有多少可以适合你的RAM。不要将它们放在用户控件中。把它们分批处理,无论你的数据库能处理的最好大小(从我的经验来看,大批量/批次中的1K到10K行)。

相关问题