在Rust中,我想指定一個回調函數(例如閉包),以便在發生某些有趣事情時由工作線程調用。回調的正確類型簽名是什麼?將閉包移動到線程時,「無法藉助不可變內容作爲可變內容」
這是什麼,我試圖做一個例子:
use std::thread;
fn spawner(f: Box<FnMut()->()+Send>) -> thread::JoinHandle<()> {
thread::spawn(move || {
f();
})
}
fn main() {
let cb = || {
println!("callback");
};
spawner(Box::new(cb)).join().unwrap();
}
src/main.rs:5:9: 5:10 error: cannot borrow immutable `Box` content `*f` as mutable src/main.rs:5 f();