gpt4 book ai didi

c++ - 避免在 ZMQ 中缓冲一段确定的时间?

转载 作者:行者123 更新时间:2023-11-28 07:27:44 24 4
gpt4 key购买 nike

我们正在读取来自在 ZMQ 中广播的 Kinect 的消息。

我们或多或少使用了以下代码:

socket_t subscriber_eeg(context, ZMQ_SUB);
subscriber_eeg.connect("tcp://127.0.0.1:5559");
while(true)
{
Do Random stuff
if (pressedPause)
{
//shows message
continue;
}

subscriber.recv(&kinect_msg);
//code to process message
//code to plot the hand movements.
}

目标是在有人按下暂停的给定事件上暂停代码的执行。暂停事件独立运行在一个线程上。

一切正常,但问题是,由于 ZMQ 缓冲消息,它突然开始绘制在暂停状态下捕获的每个 Action 。

有没有办法告诉ZMQ在暂停的情况下停止接收消息,或者清除缓冲区?

最佳答案

只需切换连接状态:

subscriber.connect("tcp://127.0.0.1:5559");
//do work

//user presses 'Pause'
subscriber.disconnect("tcp://127.0.0.1:5559");

//user un-'Pauses'
subscriber.connect("tcp://127.0.0.1:5559");

我刚刚用单独的线程对此进行了测试,当订阅者醒来时,它不会检索在断开连接状态下发送的消息。

关于c++ - 避免在 ZMQ 中缓冲一段确定的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18409841/

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