小编sid*_*d34的帖子

有没有办法在新线程上启动 tokio::Delay 以允许主循环继续?

如果计时器未取消,我试图在延迟结束时运行一个函数。用例是按住/双击以进行用户输入。

我遇到的主要问题是停止tokio::run(task);主循环执行,从而阻止我评估用户控件的状态。

fn start_timer(&self) {
    let function_name = self.combo.function_name.clone();
    let when = Instant::now() + Duration::from_millis(self.combo.timer_value as u64);
    let task = Delay::new(when)
        .and_then(move |_| {
            call_function(&function_name, InteropParams::Button);
            Ok(())
        })
        .map_err(|e| panic!("delay errored; err={:?}", e));

    tokio::run(task);
}
Run Code Online (Sandbox Code Playgroud)

future rust rust-tokio

1
推荐指数
1
解决办法
2226
查看次数

标签 统计

future ×1

rust ×1

rust-tokio ×1