2011-02-10 11 views

Respuesta

19

No. No detectará ninguna excepción en su otro hilo t. Tendrás que atraparlos en ese hilo y tratarlos apropiadamente.

Sin embargo, creo que el evento UnhandedException de AppDomain lo informará.

+0

Ok, gracias ... – xbonez

+7

'Application.ThreadException' para WinForms,' Application.DispatcherUnhandledException' para WPF y 'AppDomain.UnhandledException' para ser específico. –

+0

@xbonez, También para expandir, el código en la pregunta iniciará el nuevo subproceso y luego continuará procesando justo después del bloque catch mientras el nuevo subproceso comienza a ejecutarse. –

4

¡Eche un vistazo a System.ComponentModel.BackgroundWorker! Tiene manejo de excepción y cancelación.

+0

Lo siento, se olvidó de responder la pregunta. No, la captura no recibirá excepciones de otro hilo. El BackgroundWorker fue diseñado para hacer frente a esta situación. –

+0

¿Estás diciendo que el 'BackgroundWorker' captará una excepción que cruce hilos. Por ejemplo, si en el 'RunWorkAsync' llama a un método que inicia otro hilo y ese hilo tiene una excepción, ¿será manejado por el evento' WorkCompleted'? Estoy intentando eso y parece no atraparlo. – Harrison

+0

RunWorkAsync ejecutará el código en otro hilo, por lo que no es necesario iniciar otro hilo. Solo detectará excepciones en el hilo en el que se ejecuta. –

Cuestiones relacionadas