【发布时间】:2020-04-12 20:42:41
【问题描述】:
我正在尝试将闭包发送到线程中以进行如下处理:
fn spawn<F>(work_load: F) where F: FnMut() {
let builder = Builder::new();
let handler = builder.spawn(move || {
// Before process
work_load();
// After process
}).unwrap();
}
但我收到一个错误:
F 无法在线程之间安全发送
概括地说,我需要这样做(代码编译):
let closure = || env_variable.to_string();
thread::spawn(move || {
// before closure
closure();
// after closure
});
考虑到我需要捕获环境,我如何定义 F 以便将其发送到线程中。
【问题讨论】:
标签: rust thread-safety closures