耗尽ValueType堆栈空间
|
我的理解是,.Net中的每个新线程都会分配1MB的堆栈空间。我的进一步理解是,值类型存储在堆栈上,而不是堆上。
所以我的问题是这种行为是否意味着任何ValueType变量声明都限于1MB的存储空间?在当前作用域中声明的ValueTypes越多,则调用栈可以越有效,这在某个时候是否意味着声明(出于参数考虑)〜260,000 int将占用您的所有堆栈空间?
没有找到相关结果
已邀请:
1 个回复
疏腔傻小雹
当我编译并运行此代码时,我得到了堆栈溢出异常。这意味着至少在某些情况下确实受到堆栈空间的限制。这确实意味着您拥有的局部变量越多,剩下的用于方法调用,递归等的堆栈就越少。 再一次:这些考虑几乎是不实际的。如果您要分配价值1MB的局部变量,则很可能您做错了什么。但是如果您仍然想知道...现在您知道了。