2个版本
0.1.1 | 2024年7月23日 |
---|---|
0.1.0 | 2023年8月20日 |
#396 in 异步
每月135次下载
18KB
341 代码行
cancellation-token-rs
C#的CancellationToken API的Rust实现。
示例
use cancellation_token::{CancellationToken, CancellationTokenSource, MayBeCanceled};
fn cancelable_function(ct: &CancellationToken) -> MayBeCanceled<u32> {
for _ in 0..100 {
ct.canceled()?; // Return from this function if canceled
heavy_work();
}
Ok(100)
}
fn heavy_work() { }
fn main() {
let cts = CancellationTokenSource::new();
std::thread::scope(|s| {
s.spawn(|| {
std::thread::sleep(std::time::Duration::from_secs(2));
cts.cancel();
});
if cancelable_function(&cts.token()).is_err() {
println!("canceled");
}
});
}
许可证
本项目采用Apache-2.0/MIT双重许可。有关详细信息,请参阅两个LICENSE-*文件。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在作品中的贡献,均将按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~335–800KB
~18K SLoC