Código:
No es posible crear una nueva página de seguridad para la pila
Esto sucede al dejar una aplicación corriendo (en Standby digamos) durante 2 horas más o menos.
Es muy dificil buscar información sobre el problema cuando el mensaje de error está en castellano, ya que si pongo el mensaje de error en Google la única información relacionada que aparece en los resultados es esto -> Wikipedia: Pila de llamadas <-
...Después de habermelo leido, me he quedado con esta parte:
Citar
...Usualmente hay exactamente una pila de llamadas asociado a un programa en ejecución (o más precisamente, con cada tarea o hilo de un proceso)...
...Si el empujar (push) consume todo el espacio asignado para la pila de llamadas, ocurre un error llamado desbordamiento de pila...
...Si el empujar (push) consume todo el espacio asignado para la pila de llamadas, ocurre un error llamado desbordamiento de pila...
...No entiendo muy bien las explicaciones, pero yo no uso multi-threading en mi aplicación, y todas las funciones que devuelven un valor pues...eso, lo devuelven,
y me parece que todo lo que apilo luego lo desapilo, aunque no entiendo ni se que tipo de datos son los que se apilan en una aplicación y cuales son los que puede que no se estén desapilando bien y como detectarlos.
¿Que debo examinar en mi código para intentar averiguar que puede ser el causante de este error?.
EDITO: Creo que la traducción de mi problema al inglés sería -> Stack overflow <-
EDITO 2: Las recursiones que hago en las subrutinas que uso siempre devuelven un valor es decir que su ejecución termina corréctamente (o eso creo), así que entonces esto no puede estar causando el error, ¿verdad?
Si yo tengo esto, el desapilamiento (poping) de los datos es correcto, ¿no?:
Código
sub loquesea(sender as object) handles algún evento cualquiera sender.propiedad = uno(32) end sub function uno(valor as int32) return dos(valor) end sub function dos(valor as int32) ' hacer cosas... return valor modificado end function
...Es que entonces no entiendo que tipo de recursiones son las que no estoy desapilando, si en todas las subrutinas que llamo a otras subrutinas devuelvo un valor para terminar su ejecución.
EDITO 3: Me asalta la duda de cual es el tamaño máximo del Stack (la pila), y si puedo agrandar ese tamaño (mientras busco una solución decente, claro).
EDITO 4: Y también tengo la duda de si existe alguna forma para detectar recursividades conflictivas en un código, porque si tengo que modificar código y luego mantener la aplicación durante 2 horas cada vez para ver si se ha arreglado o no... vaya tela!, y además el analizador de código del VS no me indica ninguna sugerencia que corregir.