2012-03-15 11 views

Respuesta

18

La causa más probable de este problema es una evaluación implícita de una propiedad o método ToString que causa un problema con el hilo de evaluación CLR. Para verificar esto, desactive la evaluación implícita.

  • Herramientas -> Opciones
  • depuración
  • Desactive la opción "Habilitar la evaluación de propiedades y otra función implícita llama"

reinicie el escenario y ver si funciona.

+0

esto resultó ser una llamada recursiva para mí. En un método de propiedad get(), estaba devolviendo la propiedad pública en lugar del campo de respaldo privado. Uy. – Induster

3

Visual Studio ejecuta el getter de propiedades para obtener su valor, si lleva mucho tiempo porque hace algo caro, obtiene este error. en cuenta:

public class foo 
{ 
    private object lockObject = new object(); 
    public int bar 
    { 
     get 
     { 
      lock(lockObject){ 
       return 42; 
      } 
     } 
    } 
    public int aMethod() 
    { 
     lock(lockObject) 
     { 
      var a = this.bar; 
      return a*2; //insert a break point here 
      } 
     } 
} 

Si se agrega un punto de quiebre en la sentencia de retorno en aMethod el depurador no será capaz de evaluar la propiedad de la barra, porque hacerlo requiere que adquiere el objeto de bloqueo, pero no será capaz de hacerlo porque el programa mantendrá ese bloqueo para siempre mientras el punto de interrupción esté activo

Cuestiones relacionadas