gpt4 book ai didi

c++ - boost 异步读/写失败, "Insufficient system resources exist to complete the requested service"

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:01 26 4
gpt4 key购买 nike

我(貌似)随机收到错误:

"Insufficient system resources exist to complete the requested service"

当使用 boost::asio::async_read_untilboost::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:

在网络上搜索此特定错误消息时,通常建议按此处所述增加页面缓冲池内存:

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/举个例子。希望对您有所帮助。

关于c++ - boost 异步读/写失败, "Insufficient system resources exist to complete the requested service",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36205437/

26 4 0