Luego de de nuestra prolongada recopilación de datos pudimos resolver esta incógnita que presentan ciertos de nuestros lectores. Te compartimos la solución y nuestro deseo es servirte de gran apoyo.
Solución:
La gran mala advertencia
Si usa la recursividad en un programa y llega a un punto en el que tener una StackOverflowException es una amenaza real, no considere aumentar el tamaño de la pila como una solución válida.
Si encuentra una StackOverflowException, está haciendo algo muy mal; en su lugar, deberías estar usando un Stack
para procesamiento primero en profundidad, o un Queue
para el procesamiento de ancho primero. Ejemplo.
La solución
Esto se puede lograr usando editbin.exe
que se instala con este paquete;
Encuentra la ubicación de editbin.exe
el mío estaba ubicado en C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.14.26428binHostx64x64editbin.exe
sugeriría usar Everything de voidtools en lugar de la horrible búsqueda de Microsoft para encontrar esto.
Establecer el tamaño de la pila manualmente
Navegue a su carpeta bin y ejecute lo siguiente:
"" /stack:
Por ejemplo, ejecuté esto:
"C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.14.26428binHostx64x64EDITBIN.EXE" /stack:2097152 ExampleProgram.exe
Lo que establece el tamaño de reserva de la pila en 2 MB.
Con esto fui capaz de llegar al doble del nivel de recursión; (Reserva de pila de 1 MB a la izquierda, reserva de pila de 2 MB a la derecha).
Establecer el tamaño de la pila automáticamente
Haga clic derecho en su proyecto y seleccione ‘Opciones’, luego haga clic en ‘Crear eventos’ y agregue lo siguiente a sus eventos posteriores a la construcción:
"" /stack: "$(TargetPath)"
Por ejemplo, agregué
"C:Program Files (x86)Microsoft Visual Studio2017CommunityVCToolsMSVC14.14.26428binHostx64x64EDITBIN.EXE" /stack:2097152 "$(TargetPath)"
esto se ejecutará editbin.exe
cada vez que construyas tu ejecutable.
Nota: Verá un nivel mucho más bajo de recursividad alcanzado cuando ejecute su programa desde Visual Studio que cuando lo ejecute explícitamente a través de explorer o cmd. Sin embargo, aún verá un aumento de 2 veces en el nivel de recursividad alcanzado si pasa de una reserva de pila de 1 MB a una reserva de pila de 2 MB.
Recuerda algo, que tienes la capacidad de agregar una reseña si hallaste tu rompecabezas en el momento verdadero.