本文簡要介紹rust語言中 Struct std::sync::mpsc::TryIter
的用法。
用法
pub struct TryIter<'a, T: 'a> { /* fields omitted */ }
一個迭代器,它嘗試為 Receiver
產生所有掛起的值,由 try_iter
創建。
None
將在沒有剩餘未決值或相應通道已掛起時返回。
這個迭代器永遠不會阻塞調用者以等待數據可用。相反,它將返回 None
。
例子
use std::sync::mpsc::channel;
use std::thread;
use std::time::Duration;
let (sender, receiver) = channel();
// Nothing is in the buffer yet
assert!(receiver.try_iter().next().is_none());
println!("Nothing in the buffer...");
thread::spawn(move || {
sender.send(1).unwrap();
sender.send(2).unwrap();
sender.send(3).unwrap();
});
println!("Going to sleep...");
thread::sleep(Duration::from_secs(2)); // block for two seconds
for x in receiver.try_iter() {
println!("Got: {}", x);
}
相關用法
- Rust Try.from_output用法及代碼示例
- Rust Try用法及代碼示例
- Rust TryFrom用法及代碼示例
- Rust Try.branch用法及代碼示例
- Rust TcpStream.local_addr用法及代碼示例
- Rust TcpStream.peer_addr用法及代碼示例
- Rust TcpListener.take_error用法及代碼示例
- Rust Take.limit用法及代碼示例
- Rust TcpStream.set_nodelay用法及代碼示例
- Rust ToSocketAddrs用法及代碼示例
- Rust TcpStream.nodelay用法及代碼示例
- Rust ToOwned.to_owned用法及代碼示例
- Rust TcpListener.into_incoming用法及代碼示例
- Rust TcpStream.take_error用法及代碼示例
- Rust TcpListener.accept用法及代碼示例
- Rust ThreadId用法及代碼示例
- Rust Take.set_limit用法及代碼示例
- Rust Thread.unpark用法及代碼示例
- Rust TcpStream.write_timeout用法及代碼示例
- Rust TcpListener.local_addr用法及代碼示例
- Rust Take.get_ref用法及代碼示例
- Rust TcpStream.peek用法及代碼示例
- Rust TcpStream.set_write_timeout用法及代碼示例
- Rust TcpListener.ttl用法及代碼示例
- Rust TcpStream.set_nonblocking用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 Struct std::sync::mpsc::TryIter。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。