Исключения в потоках потоков - PullRequest
6 голосов
/ 05 марта 2009

Похожие:


Если метод генерирует исключения, которые вызываются методом ThreadPool.QueueUserWorkItem, где будет выброшено исключение? или это будет просто съедено?

Я имею в виду, что он никогда не будет брошен в вызывающий поток, верно?


Ответы [ 3 ]

4 голосов
/ 05 марта 2009

НЕТ, исключение никогда не будет распространено на другой поток. Это в конечном итоге приведет к сбою потока и попаданию в среду выполнения. В этот момент среда выполнения вызывает событие AppDomain.UnhandledException, где может наблюдаться исключение.

Подробнее об этом можно прочитать здесь .

4 голосов
/ 05 марта 2009

Исключение приведет к аварийному завершению работы вашего приложения, если оно не будет перехвачено в обратном вызове вашего потока (кроме исключений ThreadAbortException и AppDomainUnloadedException) Обратите внимание, что в .NET 1.1 все исключения были проглочены. Поведение было изменено в .NET 2.0.

Я нашел эту ссылку: http://msdn.microsoft.com/en-us/library/ms228965.aspx

1 голос
/ 05 марта 2009

Необработанные исключения приведут к закрытию приложения в .Net 2.0 или выше. Исключение из кода QUWI не будет перехвачено или перенесено в другой поток.

Смотри, например, https://blog.codinghorror.com/improved-unhandled-exception-behavior-in-net-20/

...