pub struct AbortHandle { /* 私有字段 */ }展开描述
中止已生成任务的所拥有权限,无需等待其完成。
与 JoinHandle 不同,AbortHandle 不表示等待任务完成的权限,只表示终止它的权限。
可以通过调用 AbortHandle::abort 方法中止任务。Drop AbortHandle 会释放终止任务的权限——它不会中止任务。
请注意,使用 spawn_blocking 生成的任务无法中止,因为它们不是异步的。如果对 spawn_blocking 任务调用 abort,那么这将没有任何效果,任务将继续正常运行。例外情况是如果任务尚未开始运行;在这种情况下,调用 abort 可能会阻止任务启动。
实现§
源代码§impl AbortHandle
impl AbortHandle
源代码pub fn abort(&self)
pub fn abort(&self)
中止与该句柄关联的任务。
await 一个已取消的任务可能会像往常一样完成(如果任务在被取消时已经完成),但最有可能的是失败并返回已取消的 JoinError。
如果任务已被取消(例如通过 JoinHandle::abort),则此方法将不执行任何操作。
请注意,使用 spawn_blocking 派生的任务无法被中止,因为它们不是异步的。如果对 spawn_blocking 任务调用 abort,则不会产生任何效果,任务将继续正常运行。例外情况是任务尚未开始运行;此时调用 abort 可能会阻止任务启动。
有关取消的更多信息,另请参阅 模块级文档。
源代码pub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
检查与此 AbortHandle 关联的任务是否已完成。
请注意,即使已对任务调用了 abort,此方法也可能返回 false。这是因为取消过程可能需要一些时间,并且此方法在取消完成之前不会返回 true。
trait 实现§
源代码§impl Clone for AbortHandle
impl Clone for AbortHandle
源代码§impl Debug for AbortHandle
impl Debug for AbortHandle
impl RefUnwindSafe for AbortHandle
impl Send for AbortHandle
impl Sync for AbortHandle
impl UnwindSafe for AbortHandle
自动 trait 实现§
blanket 实现§
源代码§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
源代码§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. 更多信息