在 Rust 中如何优雅地取消异步任务
在 Rust 中如何优雅地取消异步任务 本文也在 github 上发布,敬请关注勘误或讨论。 什么是优雅 在 Rust 中要取消一个异步操作,如果这个异步操作已经被 Future 所包装,那么只需要 drop()。依托于 RAII 语义,和异步任务相关的资源通常都会被恰当地释放。如果是在其他线程运行的任务,通过 detach 或者同样简单地 drop...
在 Rust 中,可以通过让异步任务接收取消信号来优雅地取消任务。使用 CancelToken 设计可以避免直接丢弃 Future 导致无法获取结果。引入 IntoFuture 和 TrMayCancel 可以隐藏 CancelToken 的使用,提升代码的优雅性。