【发布时间】:2011-06-10 03:33:22
【问题描述】:
我的理解是.Net 中的每个新线程都会分配1MB of stack space。进一步我的理解是值类型存储在堆栈而不是堆中......
所以我的问题是这样的;这种行为是否意味着任何 ValueType 变量声明都被限制为 1MB 的存储空间?您在当前范围内声明的 ValueType 越多,调用堆栈可以有效地越小,这是否意味着声明(为了论证)~260,000 个整数将使用您的所有堆栈空间?
【问题讨论】:
-
理论上您可以通过将值传递给线程的构造函数来增加堆栈的大小。在大多数情况下,您不必这样做。
-
更多关于值类型和栈的信息:stackoverflow.com/questions/1932155/…
-
@Anthony Pegram:List 是一个引用类型,所以这并不能证明什么。
-
有缺陷的例子,我承认这一点。
标签: c# memory reference stack value-type