2011-02-10 2 views

ответ

19

Нет. В вашей другой теме не будет никаких исключений t. Вам придется поймать их в этом потоке и справиться с ними соответствующим образом.

Однако, я считаю, что событие UnhandedException AppDomain сообщит об этом.

+0

Хорошо, спасибо ... – xbonez

+7

'Application.ThreadException' для WinForms,' Application.DispatcherUnhandledException' для WPF и 'AppDomain.UnhandledException', чтобы быть конкретным. –

+0

@xbonez. Также для расширения код в вопросе начнет новый поток, а затем продолжит обработку прямо мимо блока catch, пока новый поток только начинает выполняться. –

4

Взгляните на System.ComponentModel.BackgroundWorker! Он имеет обработку исключений и отмены.

+0

Извините, забыли ответить на вопрос. Никакой улов не получит исключений из другого потока. BackgroundWorker был разработан, чтобы справиться с этой ситуацией. –

+0

Вы говорите, что «BackgroundWorker» поймает исключение, которое пересекает потоки. Например, если в «RunWorkAsync» вы вызываете метод, который запускает другой поток, и этот поток имеет исключение, будет ли он обработан событием «WorkCompleted»? Я стараюсь, и, похоже, это не поймать. – Harrison

+0

RunWorkAsync запускает код в другом потоке, поэтому нет необходимости запускать другой поток. Он будет обрабатывать исключения только в потоке, на котором он работает. –

Смежные вопросы