使用 Rust 1.9,我想从 mpsc::channel
或 超时读取。是否有明确的习惯用法来使这项工作有效?我见过 mpsc::Select
中描述的不稳定方法但是this Github discussion表明这不是一个稳健的方法。是否有更好的推荐方法来实现接收或超时语义?
最佳答案
引入了 Rust 1.12 Receiver::recv_timeout
:
use std::sync::mpsc::channel;
use std::time::Duration;
fn main() {
let (.., rx) = channel::<bool>();
let timeout = Duration::new(3, 0);
println!("start recv");
let _ = rx.recv_timeout(timeout);
println!("done!");
}
关于multithreading - 从 channel 读取或超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820454/