¿Cómo cambiar el tamaño de la stack para un progtwig .NET?

Tengo un progtwig que hace llamadas recursivas por 2 mil millones de veces y el desbordamiento de la stack. Realizo cambios y aún necesito 40,000 llamadas recursivas. Entonces necesito probablemente varios MB de memoria de stack. Escuché que el tamaño de la stack es por defecto de 1MB. Intenté buscar en línea. Alguien dijo que fuera a propiedades -> linker ……… en Visual Studio, pero no puedo encontrarlo.

¿Alguien sabe cómo boostlo? También me pregunto si puedo configurarlo en algún lugar de mi progtwig C #.

PD Estoy usando winXP de 32 bits y win7 de 64 bits.

La forma más sencilla de configurar el tamaño de la stack desde .NET 2.0 y Win XP en adelante es generar un nuevo hilo con el tamaño de stack que desee: –

using System.Threading; Thread T = new Thread(threadDelegate, stackSizeInBytes); T.Start(); 

Para cambiar el tamaño de la stack de todo el progtwig, deberías usar editbin: –

 EDITBIN.EXE /STACK: file.exe 

No hay una opción de comstackción para hacerlo. Puede editarlo después del hecho usando editbin / stack , o crear un hilo separado para su algoritmo, y especificar un tamaño de stack más grande en el constructor Thread .

Dicho esto, es posible que desee aplanar su función recursiva … Si tiene desbordamientos de stack ahora, es difícil saber que cualquier tamaño de stack será apropiado a largo plazo. Esta es solo una solución de curita.

Lo más probable es que intente utilizar bucles en lugar de recurrencia.

Sé que en VS puedes establecer un tamaño de stack arbitrario (EDITAR: para progtwigs C ++). Sin embargo, le sugiero que use una llamada final (es decir, devuelva MyFunc (args);) que recicla automáticamente el espacio de la stack. Luego, usaría algún objeto asignado en el montón para mantener el estado.