我最近发现了 ATL 的 CThreadPool 类并且对这个发现非常满意。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool 对象。
现在假设其中一个工作线程遇到错误,或者有异常。我并不是指您希望整个应用程序死掉的异常类型,但这是您想要更优雅地处理的事情。优雅地说,我的意思是应用程序可能会死掉,但我需要做一些清理工作,并在某处放置一条正确的消息,说明它为什么会死掉。
将错误信息(消息、错误代码、源等)传输到拥有 CThreadPool 对象的主线程的最佳方式是什么?