Question

Connexes:

Si une méthode lève une exception appelée par la méthode ThreadPool.QueueUserWorkItem, où cette exception sera-t-elle levée? ou va-t-il simplement être mangé?

Je veux dire qu'il ne sera jamais jeté sur le fil d'appel, n'est-ce pas?

Était-ce utile?

La solution

NON, l'exception ne sera jamais propagée à un autre thread. Il finira par planter le thread et sera attrapé par le runtime. À ce stade, le moteur d'exécution déclenche l'événement AppDomain.UnhandledException où l'exception peut être observée.

Vous pouvez en savoir plus sur cet ici .

Autres conseils

L'exception plantera votre application si elle n'est pas interceptée dans votre rappel de thread (à l'exception des exceptions ThreadAbortException et AppDomainUnloadedException qui sont avalées). Notez que dans .NET 1.1, toutes les exceptions ont été avalées. Le comportement a été modifié dans .NET 2.0.

J'ai trouvé ce lien: http://msdn.microsoft.com/ en-us / library / ms228965.aspx

Les exceptions non gérées réduiront l'application dans .Net 2.0 ou une version ultérieure. L'exception du code QUWI ne sera ni interceptée ni transférée vers un autre thread.

Voir par exemple https://blog.codinghorror.com/improved-unhandled -exception-behavior-in-net-20 /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top