在linux下使用boost::thread创建一个boost::asio工作线程

creating a boost::asio worker thread with boost::thread under linux

本文关键字:boost 一个 线程 工作 asio 创建 linux thread      更新时间:2023-10-16

我在windows下使用boost已经有一段时间了,现在需要迁移几个现有的应用程序来在Ubuntu 12 box上运行以进行演示。该应用程序创建了两个工作线程,一个用于记录传入的UDP数据,另一个用于侦听单独的端口并将数据打印到屏幕上。

我已经完成了所有其他操作,但由于某种原因,以下行失败,错误为"无效的boost::asio::io_service::run过载">

m_logThread = new boost::thread( boost::bind( &boost::asio::io_service::run, m_ioServicePtr ));

这一行在我的Win32机器上运行良好,但在linux上给出了无效的重载错误。

还有另外两个错误:

boost::bind is ambiguous

type boost::thread could not be resolved

但我敢肯定,它们源于另一个错误。我肯定包括了boost头,因为编译器并没有抱怨我的类有指向IO服务和线程的指针作为成员变量,问题只是应该生成工作线程的那一行。

我相信我已经正确安装了boost,因为它对收割台的位置非常满意。

非常感谢。

错误是boost::asio::io_service::run过载,在这种情况下,您必须解决歧义。

相关文章: