首页 > 解决方案 > serial_port::async_read_some 在没有睡眠的情况下无法工作

问题描述

#define DELAY 1

func()
{
        auto readHandler = [&](const boost::system::error_code& ec, std::size_t bytesRead)->void
        {
            if(ec)
            {
                // Something went wrong
                std::cerr << ec.message() << "\n";
            }
        };
          string line;
          Sleep(DELAY);
          for(;;)
          {
            serial.async_read_some(boost::asio::buffer(&c, 1), readHandler);
            line += c;
          }
}

为什么在进入循环之前需要睡眠。没有睡眠,缓冲区不会收到任何内容。

标签: asynchronousboostasync-awaitboost-asioasio

解决方案


推荐阅读