加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 提升异步读/写失败,“系统资源不足,无法完成所请求的服务”

发布时间:2020-12-16 06:51:32 所属栏目:百科 来源:网络整理
导读:我(似乎)随机得到错误: “Insufficient system resources exist to complete the requested service” 使用boost :: asio :: async_read_until或boost :: asio :: async_write时使用串口. 将串行端口声明为: boost::asio::serial_port mSerialPort; 发生此
我(似乎)随机得到错误:

“Insufficient system resources exist to complete the requested service”

使用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:

在Web上搜索此特定错误消息时,通常建议增加分页池内存,如下所述:

Microsoft Support Article

在我的情况下这样做有什么意义吗?

解决方法

自从我使用Windows上的串行端口以来,已经很长很长时间了,所以请记住这一点.在历史上,在NT 4.0天,大多数串行端口驱动程序从官方NT内核DDK指南中删除都无法正确执行异步i / o,并且会不时出现您的确切错误和/或锁定.解决方案是只使用串行i / o的同步i / o,它正常工作.如果基于USB的串行端口的驱动程序最初是古老的,它可能会复制此问题.

我还要确保你使用与已知工作模式相同的设计模式.以http://www.ridgesolutions.ie/index.php/2012/12/13/boost-c-read-from-serial-port-with-timeout-example/为例.希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读