#background-task #future #async #pause #pausable

pausable_future

可暂停和可恢复的未来,适用于后台任务

2个不稳定版本

0.2.0 2024年7月18日
0.1.0 2024年4月18日

#464异步

Download history 119/week @ 2024-04-13 12/week @ 2024-04-20 7/week @ 2024-05-18 1/week @ 2024-05-25 93/week @ 2024-07-13 21/week @ 2024-07-20 7/week @ 2024-07-27

每月 121 次下载

MIT 许可证

7KB
83

可暂停未来

Crate GitHub last commit GitHub issues GitHub pull requests GitHub

在其他语言中阅读此内容: 英文简体中文

描述

可暂停和可恢复的未来/流,适用于后台任务。

用法

将其添加到您的 Cargo.toml

[dependencies]
pausable_future = "~0.2"

示例

use std::time::Duration;

use pausable_future::Pausable;
use tokio::time::sleep;

#[tokio::main]
async fn main() {
    let pausable = Pausable::new(async {
        let mut count = 0;
        loop {
            sleep(Duration::from_millis(300)).await;
            count += 1;
            println!("count: {}", count);
        }
    });
    let controller = pausable.controller();
    tokio::spawn(pausable);
    println!("spawn");
    sleep(Duration::from_secs(1)).await;
    controller.pause();
    println!("paused");
    sleep(Duration::from_secs(1)).await;
    controller.resume();
    println!("resumed");
    sleep(Duration::from_secs(1)).await;
}

依赖项

~170KB