Исключения в потоках threadpool
-
03-07-2019 - |
Вопрос
Похожие:
Если метод генерирует исключения, которые вызываются методом ThreadPool.QueueUserWorkItem, где будет сгенерировано исключение?или это просто съедят?
Я имею в виду, что это никогда не будет выброшено в вызывающий поток, верно?
Решение
НЕТ, исключение никогда не будет распространяться на другой поток.В конечном итоге это приведет к сбою потока и будет перехвачено средой выполнения.На этом этапе среда выполнения вызывает AppDomain.Событие необработанного исключения, при котором может наблюдаться исключение.
Вы можете прочитать об этом подробнее здесь.
Другие советы
Исключение приведет к сбою вашего приложения, если оно не будет перехвачено внутри вашего обратного вызова потока (за исключением ThreadAbortException и AppDomainUnloadedException, которые проглатываются).Обратите внимание, что в .NET 1.1 все исключения были проглочены.Поведение было изменено в .NET 2.0.
Я нашел эту ссылку: http://msdn.microsoft.com/en-us/library/ms228965.aspx
Необработанные исключения приведут к остановке приложения в версии .Net 2.0 или выше.Исключение из кода QUWI не будет перехвачено или передано в другой поток.
Смотрите , например ,https://blog.codinghorror.com/improved-unhandled-exception-behavior-in-net-20/