-3

我需要构建一个包含近20000 个嵌套对象在多个级别)的对象。每个对象都是一个简单的数据库实体,具有 1-5 个字段或实体列表。我正在使用内联对象初始化程序来启动我的根对象。

new OUTPUT() { XREF_CATALOG_MATERIALS = xrefCatalogMaterials.Find(x => x.MATERIAL.PART_NUM.Equals("xxxx")), FUNCTION = new FUNCTION() {...

我尝试在x86x64模式下运行,在这两种情况下我都得到了stackoverflow 异常。相同的代码和逻辑在我的对象不是那么大的其他情况下工作正常(大约 6000 个嵌套对象)

有没有办法增加.Net applicationheap 的大小?有什么建议可以用来解决这个问题吗?

4

1 回答 1

4

根据该描述,您对堆大小没有问题。你有堆栈大小的问题。看起来您正在尝试调用太多嵌套函数。每个函数调用都会对堆栈产生影响。栈比堆小很多,比较容易溢出。最简单的方法是递归。

https://msdn.microsoft.com/en-us/library/system.stackoverflowexception(v=vs.110).aspx

StackOverflowException is thrown for execution stack overflow errors, typically in case of a very deep or unbounded recursion.
于 2016-04-27T19:08:59.677 回答