18 votos

Evaluación de la función deshabilitada porque una evaluación anterior de la función se ha agotado

Tengo una aplicación en C# en la que estoy recibiendo este error :

"Evaluación de la función deshabilitada porque una evaluación de la función anterior expiró. Debe continuar la ejecución para volver a habilitar la evaluación de funciones".

He visto muchos posts relacionados con este error en stackoverflow y en msdn también pero no he encontrado ninguna solución. La mayoría de la gente dice que este error viene en la aplicación multihilo y se puede resolver mediante la eliminación de todos los breakpoints. En mi caso, mi aplicación es de un solo hilo y he eliminado todos los breakpoints también, pero todavía estoy recibiendo este error cuando depuro la aplicación. Cuando ejecuto la aplicación sin depuración, mi aplicación se cuelga y tengo que detenerla a través de Visual Studio. Intenté encontrar el código donde se cuelga y encontré la línea donde se cuelga. Aquí está el fragmento de código :

MatchCollection matchesFound = Regex.Matches(content, 
                                             keywordPattern,
                                             RegexOptions.Multiline);
int matchCount = matchesFound.Count;

Cuando la ejecución llega a la segunda línea, es decir, cuando el código intenta obtener el valor de la propiedad Count mi aplicación se cuelga. Mi expresión regular está bien ya que la he probado en Expresso y estoy seguro de que la aplicación no se cuelga mientras se ejecuta el método Matches(). Si llego a esa línea depurando, obtengo el error mencionado anteriormente. ¿Alguien sabe por qué se produce este error y cómo resolverlo?

Estoy utilizando Visual studio 2005.

Gracias y saludos,

8voto

SergGr Puntos 1288

Las razones del cuelgue y de este mensaje de error son probablemente lo mismo El cálculo de los datos: hay algo que lleva mucho tiempo. Tanto cuando lo haces en el código como en el depurador. El depurador no tiene ningún poder mágico para calcular algo más rápido que tu aplicación.

Puede intentar utilizar Debug.WriteLine para la salida real content y keywordPattern . Creo que fácilmente puede ser que ambos sean lo suficientemente grandes como para tardar años en proceder.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X