我有一个 C++ 应用程序,我在其中使用 Boost Threads 来提供并发性。基本样本如下:
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
这里,processingThreadGroup是boost中一个线程池的共享指针,process是我需要调用的函数。clientSideSocket 和 this 是应该传递给进程函数的参数。
在流程函数内部,如果检测到错误,我会抛出一个自定义异常。处理函数将数据发送到远程服务器。所以我的问题是,如何将这个错误传播到调用堆栈?我想在清理后关闭系统。尝试了以下方法:
try {
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
} catch (CustomException& exception) {
//code to handle the error
}
但是没有用。关于如何正确执行此操作的任何想法?
谢谢!