我使用Rust websocket library与事物交谈,我有一个看起来像这样的线程:
thread::spawn(move || {
while let Ok(Message::Text(text)) = receiver.recv_message() {
/* Do some stuff */
}
});
上面的接收器也可以是阻塞迭代器:
thread::spawn(move || {
for message in receiver.incoming_messages() {
/* Do same stuff */
}
});
我想向这个帖子发送一个信号告诉它停止做事。我认为mpsc::channel
对于这个信号发送会很棒。 select!
似乎是要走的路,但只有当所有频道都是mpsc::channel
类型时,它才有效。
是否可以连接两个阻塞迭代器并在数据进入时提供输出?或者这个问题的任何其他解决方案?我想避免为每个输入源创建一个线程并管理我自己的队列。