4 votes

Traitement des exceptions ASP.NET dans les threads d'arrière-plan

Lorsque je fais ThreadPool.QueueUserWorkItem, je ne veux pas que les exceptions non gérées tuent tout mon processus. Donc je fais quelque chose comme :

ThreadPool.QueueUserWorkItem(delegate() {
    try { FunctionIActuallyWantToCall(); }
    catch { HandleException(); }
});

Est-ce le modèle recommandé ? Il semble qu'il devrait y avoir un moyen plus simple de le faire. C'est dans une application asp.net-mvc, si c'est pertinent.

2voto

Darin Dimitrov Points 528142

Vous devez attraper l'exception à l'intérieur du callback (comme dans votre exemple) pour éviter la propagation dans le thread appelant. C'est le modèle recommandé. S'il s'agit d'une application ASP.NET, vous pouvez également la traiter dans la fonction Application_Error méthode dans Global.asax

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X