【发布时间】:2016-07-12 08:28:57
【问题描述】:
我(似乎)随机收到错误:
“系统资源不足,无法完成请求的服务”
将boost::asio::async_read_until 或boost::asio::async_write 与串行端口一起使用时。
将串口声明为:
boost::asio::serial_port mSerialPort;
出现此错误,我尝试
try
{
mSerialPort.cancel();
mSerialPort.close();
}
catch(boost::system::system_error error)
{
;
}
其中一个(还不确定是哪个)挂起并且永远不会返回,甚至没有抛出异常。
一般来说,这个错误是什么意思?
有人遇到过这个问题吗?我应该特别调查任何方向吗?
编辑:
有问题的串行端口使用 USB 仿真器。
关于这个other SO Question,特别是Hans Passant 的评论,这个错误是否可能与设备驱动程序有关?我将相同的代码与另一个硬件组件一起使用,但从未出现过这种行为。
编辑 2:
在网络上搜索此特定错误消息时,通常建议增加分页池内存,如下所述:
在我的情况下这样做有什么意义吗?
【问题讨论】:
-
您是否尝试在您尝试传输的数据大小与错误出现之间建立关联?
-
数据的大小总是一样的,都是小命令和响应,大小在4-10个字符长左右。
-
遇到此问题时,您使用的是什么特定设备和设备驱动程序?
-
具有更新设备驱动程序的 MCP2200 微芯片
标签: c++ boost boost-asio