C# 使用BackgroundWorker类时出现System.OutOfMemoryException

C# 使用BackgroundWorker类时出现System.OutOfMemoryException,c#,datagridview,out-of-memory,backgroundworker,C#,Datagridview,Out Of Memory,Backgroundworker,我正在使用后台工作程序更新datagridview控件中的行。当我填充这些行时,我在16,00000行之后得到System.OutOfMemoryException。为什么会来? 这个例外通常什么时候出现 有谁能告诉我如何解决这个问题吗?如果你需要处理160万行,你需要分批处理它们。你不能一次就把它们全部记在内存中。尤其是使用一个用户控件,它会为显示这些行增加大量开销 看看你的公羊能装多少。不要将它们放在用户控件中。以数据库能够最好地处理的任何大小成批处理它们(根据我的经验,成批处理的行数在1K

我正在使用后台工作程序更新datagridview控件中的行。当我填充这些行时,我在16,00000行之后得到System.OutOfMemoryException。为什么会来? 这个例外通常什么时候出现


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

如果你需要处理160万行,你需要分批处理它们。你不能一次就把它们全部记在内存中。尤其是使用一个用户控件,它会为显示这些行增加大量开销


看看你的公羊能装多少。不要将它们放在用户控件中。以数据库能够最好地处理的任何大小成批处理它们(根据我的经验,成批处理的行数在1K到10K之间)

1600万???也许应该考虑使用分页…参见<代码>备注> /代码>常见原因部分。显然,您的行太多了。此异常通常在系统内存不足时出现,如异常所示。绝对没有合理的理由向最终用户显示1600万行。他们永远不会读它。为您的观众编写代码。将行缩小