我正在尝试在 boost 中使用多线程来处理多个请求,并且在收到特定消息后,我将创建一个新线程来处理它,如下所示:
主文件
/** * 目标机器请求处理程序。 * * @param msg 收到的消息。 * @param ec 错误代码。 */ void handover_request_handler(odtone::mih::message &msg, const boost::system::error_code &ec) { 如果(欧共体) { log_(0, FUNCTION , "错误: ", ec.message()); 返回; } // 做一些事情 }
void event_handler(odtone::mih::message &msg, const boost::system::error_code &ec) { 如果(欧共体) { log_(0, FUNCTION , "错误: ", ec.message()); 返回; }
switch (msg.mid()) { // Destination Cloud Server received HO Commit Message case odtone::mih::indication::n2n_ho_commit: { boost::thread thrd(boost::bind(&handover_request_handler, msg, ec)); thrd.join(); } break; }
}
当我尝试使用 b2 工具编译它时,出现以下错误:
gcc.compile.c++ ../../bin.v2/app/lte_mih_usr/gcc-4.6/debug/link-static/runtime-link-static/main.o main.cpp:在函数'void event_handler(odtone: :mih::message&, const boost::system::error_code&)': main.cpp:189:69: 错误:使用已删除的函数'odtone::mih::message::message(const odtone::mih:: message&)' 在来自 ../../inc/odtone/mih/request.hpp:24:0 的文件中,来自 main.cpp:11:
那么如何解决这个问题呢?
非常感谢。