asynchronous - 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;
}
}
为什么在进入循环之前需要睡眠。没有睡眠,缓冲区不会收到任何内容。
解决方案
推荐阅读
- python - Excel 工作表在通过脚本后被标记为组
- mysql - 用于查询 whereBetween 构建器的原始 sql
- java - 我在 Spring Project 中收到 BrowserUpdate.exe http 400 错误
- swagger - 为什么 Swagger Schema 中忽略了过滤器属性?
- sharepoint - 我可以在 Sharepoint 库中使用 Splistitem.Update 方法吗?
- kubernetes - 使用 tar 运行 pod 并尝试将文件推送到挂载点
- android - 将加密的密钥库存储在公共存储库中是否可以
- ios - 如何从嵌入 iphone 肖像图片的深度数据中计算距离值?
- arrays - 如何在二维数组java中移动一列
- maven - 詹金斯不执行junit测试