gpt4 book ai didi

c++ - 从另一个线程中断 boost::asio::async_receive_from

转载 作者:行者123 更新时间:2023-11-28 08:19:29 32 4
gpt4 key购买 nike

我正在使用 async_receive_from 读取多播输入。所以我的想法是,当我检测到间隙时,我将通知另一个帮助线程请求/获取间隙填充消息。虽然这是在工作中,但主线程将继续接收和排队任何传入的消息。这部分我可以实现。另一个线程可以使用 waitforsingleobject,我可以通过共享内存将详细信息传递给它并通知事件将其唤醒。

但是一旦它完成任务,我如何让辅助线程中断启动线程中的 async_receive_from?当它从读取中出来时,它知道谁打断了它,所以它会知道下一步该做什么?

最佳答案

为什么要在线程之间使用共享内存?

除此之外,在管理套接字的 io_service 的上下文中,您应该使用的机制是 post()。您可以将任意事件发布到 io_service,它将在该上下文中执行。真的很简单...因为您正在调用 async_receive_from,所以它不会阻塞,即 io_service 可以分派(dispatch)其他事件,这就是 post 将起作用的原因。

关于c++ - 从另一个线程中断 boost::asio::async_receive_from,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6431308/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com