boost::interprocess::message_queue 在使用 Visual C++ 的发布模式下停止工作

发布于 2024-08-29 23:34:49 字数 193 浏览 6 评论 0原文

我正在使用 boost::interprocess::message_queue 和 VC++(在 Microsoft Visual Studio 2005 中)。 在调试模式下可以正常工作。 然后,当我在发布模式下编译程序时,它会停止工作,每次我调用“try_send”时,它都会返回 false。 我不明白发布模式和调试模式之间的设置可能有所不同,这会使队列停止工作。

I am using boost::interprocess::message_queue, with VC++ (in Microsoft Visual Studio 2005).
It is working properly in Debug mode.
Then when I compile my program in Release mode it stops working, every time I call "try_send" it returns false.
I don't understand what could be the settings that are different between Release and Debug mode, and that would make the queue stop working.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只想待在家 2024-09-05 23:34:49

事实证明,我的发布版本没有像调试版本那样进行那么多的日志记录。在队列中累积消息的线程速度更快,这意味着其他线程(刷新消息)无法赶上。
最后消息队列是否已满。
我需要使用 timed_send 来使另一个线程有时间赶上。

It turns out that my Release version does not do as much logging as the debug one. The thread that accumulates the messages in the queue is quicker, which means that the other thread (which flushes the messages) does not catch up.
In the end the message queue if full.
I need to use timed_send to make so that the other thread gets time to catch up.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文