J'ai récemment découvert la classe CThreadPool d'ATL et j'étais très heureux de cette découverte. C'est une petite classe soignée qui s'occupera de la sémantique de la syncronisation d'avoir plusieurs threads de travail pour traiter une file d'attente de tâches à faire. Les tâches sont transmises à l'objet CThreadPool, par un processus extrnal.Quel est le meilleur moyen de transférer des informations d'erreur à partir des threads de travail sous CThreadPool?
Supposons maintenant l'un des threads de travail rencontre une erreur, ou a une exception. Je ne parle pas du type d'exceptions où vous voudriez que l'ensemble de votre demande meure, mais c'est quelque chose que vous voulez faire avec plus de grâce. Par gracieusement, je veux dire que l'application peut mourir, mais je dois faire un peu de travail de nettoyage et de mettre un message de l'acheteur quelque part pour expliquer pourquoi.
Quelle est la meilleure façon de transférer les informations d'erreur (message, code d'erreur, la source, etc.) pour le thread principal propriétaire de l'objet CThreadPool?