c++ - 从 CThreadPool 下的工作线程传输错误信息的最佳方式是什么?

标签 c++ multithreading error-handling atl

我最近发现了 ATL 的 CThreadPool 类,对此发现感到非常高兴。这是一个简洁的小类,它将处理让多个工作线程处理一些任务队列的同步语义。这些任务由一些外部进程提供给 CThreadPool 对象。

现在假设其中一个工作线程遇到错误,或者出现异常。我指的不是您希望整个应用程序直接死掉的异常类型,而是您希望更优雅地处理的异常类型。我所说的优雅是指应用程序可能会死掉,但我需要做一些清理工作,并在某处放置一条正确的消息,说明它为什么会死掉。

将错误信息(消息、错误代码、来源等)传输到拥有 CThreadPool 对象的主线程的最佳方法是什么?

最佳答案

如果我正在使用这个系统,我会使用您的应用程序的消息处理程序可以响应的自定义事件从错误任务中发送消息。您应该捆绑您需要的任何信息,以便正确清理。

关于c++ - 从 CThreadPool 下的工作线程传输错误信息的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/617944/

相关文章:

C++ 奇怪的编译器语法错误

c++ - Linux 上的托管构建

c++ - 我如何显式线程化任务?

java - 将 BufferedWriter.write 延迟到另一个线程

java - 我的代码抛出 java.lang.IllegalMonitorStateException

sql-server-2008 - 如何显示使用.bat安装SQL 2008时出现的错误?

vbscript - 如何抑制 HTA 中的脚本错误?

c++ - 尽管存在上述文件,但无法打开包含文件

c++ - 给定代码示例中 vector::push_back() 中的 "the argument is copied (or moved)"究竟意味着什么?

language-agnostic - 检查错误的首选方式