我们一直在追踪我的WCF Web应用程序(W2K3 IIS)上的一个错误,导致堆栈溢出。
要修复它,我需要通过创建一个包含我想分配的内存量的线程来增加应用程序的堆栈。
但是子线程会发生什么?我的应用程序创建了许多线程,它们是继承值还是我必须用新值设置每个线程?
编辑:如果我将(WCF)服务作为控制台主机运行,它们可以正常工作。此外,如果我修改w3wp.exe的堆栈(使用EDITBIN),它们也可以在IIS上正常工作。
所以我需要增加堆栈。我知道我可以用堆栈大小创建一个线程(还有另一种方法吗?)但是我需要知道子线程会发生什么。
Edit2:我们需要定义一些导致堆栈溢出的BIG向量。所以它不是我们系统中的错误。我真的需要(有)增加堆栈
答案 0 :(得分:2)
自己尝试后我可以说是的! 子线程保持父线程上的堆栈数量。
答案 1 :(得分:1)
听起来你需要更仔细地思考为什么你得到的堆栈溢出而不仅仅是分配更多的内存。
是否有一些函数包含大量局部变量或堆栈中的数组?
你确定你没有在无意的递归循环中泄漏吗?
- 亚当