繁体   English   中英

从另一个线程中断boost :: asio :: async_receive_

[英]interrupting boost::asio::async_receive_from from another thread

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

但是一旦完成任务,如何获得帮助线程来中断启动线程中的async_receive_from 当读取结果出来时,它知道是谁打断了,所以它将知道下一步该怎么做?

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

除此之外,在管理套接字的io_service上下文中用于执行某些操作的机制应该是post() 您可以将任意事件发布到io_service,它将在该上下文中执行。 确实很容易...因为您正在调用async_receive_from ,所以它不会阻塞,即io_service可以调度其他事件,这就是该post可以正常工作的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM