c# - C# 应用程序中的堆栈溢出

标签 c# memory stack-overflow

我对编程中的内存划分概念不熟悉。我发现在大多数情况下,.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/

相关文章:

c++ - reinterpret_cast 本身会导致异常吗?

kotlin - 在使用 Android 数据绑定(bind)和 Kotlin 的自定义 BindingAdapter 中使用 lambda

android - 自定义 session 另一个类

typescript - 在 TypeScript 中实现堆栈安全的 Future;为什么延迟链会导致堆栈溢出?

c# - 错误 "check the manual that corresponds to your MySQL server version"

c# - 如何获得构建/重建实时输出

c# - API设计问题

c - 在嵌入式系统中永久分配内存

android - 增加分配给应用程序的内存

c# - 具有内部联接、多个分组依据和最小最大值的 Linq 查询