我对编程中的内存划分概念不熟悉。我发现在大多数情况下,.NET 应用程序的堆栈大小为 1MB 轮。我的问题是:“在某些函数中,当我将局部变量用于大于 1MB 的“图像”类型时,堆栈溢出如何不出现。提前致谢。
最佳答案
因为 StackOverflow
异常与堆栈或堆内存管理无关。根据 MSDN Documentation :
The exception that is thrown when the execution stack overflows because it contains too many nested method calls. This class cannot be inherited.
现在,如果您就内存而言谈论堆栈
,那么我们就处于一个不同的世界。您存储在内存中的图像可能保存在 Large Object Heap 上.内存管理及其相关话题对于本论坛而言过于宽泛 - 但如果您有关于内存管理的具体问题,我们可以解决。
请务必了解您在问题中混用了两个术语和概念,并且两者之间存在明显差异。我不希望你继续认为你应该因为大对象而得到一个 StackOverflow
异常。我也不希望您继续认为您是因为大型对象和内存管理而遇到StackOverflow
异常。
关于c# - C# 应用程序中的堆栈溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055302/