Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Recursion y problemas con la Pila en C#

Iniciado por XÑA, 18 de Octubre de 2013, 09:58:50 AM

« anterior - próximo »

XÑA

Buenas a todos. Estoy convirtiendo el programita smallPT ( Path Tracing) de C++ a .Net y me he encontrado con un problema.
En RayTracing, la recursión es muy utilizada, y en C# me salta enseguida StackOverflow.  ???
He conseguido salvarlo utilizando un Thread y asignando la pila. El problema ha venido cuando he querido utilizar el Parallel.For. Por lo visto aquí lo que hace es ir creando tareas, pero NO hay forma de especificar el tamaño de la pila, si no es con EditBin.
Así que he añadido esto al postProcess de compilación:
call "$(DevEnvDir)..\tools\vsvars32.bat"

editbin /stack:60097152 "$(TargetPath)"

Pero no me funciona....

¿alguna idea?

Vicente

Seria muy complicado no hacerlo recursivo? Es lo mejor que puedes hacer creo yo...

XÑA

Tengo la versión sin recursividad, pero no conocía esta limitación. 1 MB me parece muy poco para la pila, y que esto esté limitado tampoco parece tener mucho sentido. Mi ordenador es de 64 bits y tiene 8 GB.... Puedo dedicar perfectamente 50 MB de pila, aunque sé que es una barbaridad. Además se permite hacer por código simplemente creando un Thread, así que...¿Porqué no facilitarlo?

Bueno, la semana que viene subiré el código convertido a .Net, que es el único que falta!!!  :D

Increible un programa que hace Path Tracing en sólo 99 líneas!!!







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.