这只是一个“确定”的问题。 .NET 4 中的 x64 系统的递归/循环是否有任何已知的特殊限制/错误?
我的情况很简单——一个程序在任何 x86 系统上都可以正常运行,但它在 x64 系统上会因 StackOverflowException 而崩溃(该程序包括一些 xml/映射代码,其中包含多个地方的递归等)。
目前解决此问题的唯一方法是调用corflags /32BIT+
。在我的程序集上(并且程序开始正确运行)。但我想知道 - 是否有任何已知会导致 x64 上的错误/问题的特殊情况?
谢谢。
最佳答案
指针需要更多的内存才能在 x64 中表示(实际上是两倍)。因此,您将使用更多内存,因此深度递归可能会比 x86 更早地在 x64 上导致堆栈溢出。您可能想尝试 raising the stack limit来缓解这个问题。
关于.net - 在 x64 系统上抛出 StackOverflowException;在 x86 上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9597037/