Basta ya de investigar por todo internet porque has llegado al lugar correcto, contamos con la respuesta que deseas y sin complicaciones.
Solución:
Como dice el mensaje, tiene una tarea que generó una excepción no controlada.
Active Romper en todas las excepciones (Depuración, Excepciones) y vuelva a ejecutar el programa.
Esto le mostrará la excepción original cuando se lanzó en primer lugar.
(comentario adjunto): En VS2015 (o superior). Seleccione Depurar > Opciones > Depuración > General y anule la selección de la opción “Habilitar solo mi código”.
Podría manejar la excepción directamente para que no bloquee su programa (atrapando el AggregateException
). También puede mirar la excepción interna, esto le dará una explicación más detallada de lo que salió mal:
try
// your code
catch (AggregateException e)
La respuesta aceptada funcionará si puede reproducir fácilmente el problema. Sin embargo, como práctica recomendada, debe detectar cualquier excepción (y registro) que se ejecute dentro de una tarea. De lo contrario, su aplicación se bloqueará si ocurre algo inesperado dentro de la tarea.
Task.Factory.StartNew(x=>
throw new Exception("I didn't account for this");
)
Sin embargo, si hacemos esto, al menos la aplicación no se bloquea.
Task.Factory.StartNew(x=>
try
throw new Exception("I didn't account for this");
catch(Exception ex)
//Log ex
)
Si te gusta la programación, puedes dejar una crónica acerca de qué te ha gustado de este post.