我正在使用async_receive_from
阅读多播输入。所以我的想法是,当我检测到间隙时,我将通知另一个帮助程序线程请求/获取间隙填充消息。虽然这是在工作中,主线程将继续接收和排队任何传入的消息。这部分我可以实现。另一个线程可以使用waitforsingleobject,我可以通过共享内存传递详细信息并通知事件将其唤醒。
但是一旦完成任务,我如何让helper线程中断启动线程中的async_receive_from
?当它从读取中出现时,它知道谁被打断了,那么它将知道下一步该做什么?
答案 0 :(得分:1)
为什么在线程之间使用共享内存?
除此之外,您应该用于在管理套接字的io_service
上下文中执行某些操作的机制是post()
。您可以将任意事件发布到io_service,它将在该上下文中执行。真的很简单......因为你正在调用async_receive_from
,它没有阻塞,即io_service可以调度其他事件,这就是post
可以工作的原因。