Eccezioni sui thread di thread pool
-
03-07-2019 - |
Domanda
Correlato:
- Come catturare le eccezioni da un ThreadPool.QueueUserWorkItem?
- Eccezioni sui thread .Net ThreadPool
Se un metodo genera un'eccezione chiamata dal metodo ThreadPool.QueueUserWorkItem dove verrà generata l'eccezione? o sarà appena mangiato?
Voglio dire, non verrà mai lanciato sul thread chiamante, giusto?
Soluzione
NO, l'eccezione non verrà mai propagata a un altro thread. Alla fine si arresterà il thread e verrà catturato dal runtime. A questo punto il runtime genera l'evento AppDomain.UnhandledException in cui è possibile osservare l'eccezione.
Puoi leggere ulteriori informazioni su questo qui .
Altri suggerimenti
L'eccezione causerà l'arresto anomalo dell'applicazione se non viene rilevata nel callback del thread (ad eccezione di ThreadAbortException e AppDomainUnloadedException ingeriti). Si noti che in .NET 1.1 sono state ingoiate tutte le eccezioni. Il comportamento è stato modificato in .NET 2.0.
Ho trovato questo link: http://msdn.microsoft.com/ it-it / library / ms228965.aspx
Le eccezioni non gestite faranno cadere l'app in .Net 2.0 o versioni successive. L'eccezione dal codice QUWI non verrà catturata o trasferita su un altro thread.
Vedi ad es. https://blog.codinghorror.com/improved-unhandled -exception-comportamento-in-net-20 /