我有一个C++应用程序,我使用Boost线程来提供并发性。基本示例如下:C++如何在线程产生函数中提升线程抛出的异常
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
这里,processingThreadGroup是一个共享指针在升压线程池和工艺是我需要调用的函数。 clientSideSocket和这是应该传递给进程函数的参数。
在处理函数内部,如果检测到错误,我会抛出一个自定义异常。进程函数将数据发送到远程服务器。所以我的问题是,如何将这个错误传递给调用堆栈?清理完成后,我想关闭系统。试过以下内容:
try {
processingThreadGroup->create_thread(boost::bind(process, clientSideSocket, this));
} catch (CustomException& exception) {
//code to handle the error
}
但没有奏效。任何想法如何正确地做到这一点?
谢谢!
它看起来很像'std :: async' _does/do_do_,它使用'future'来处理返回值和异常。 –