3 个不稳定版本
0.2.0 | 2020年7月14日 |
---|---|
0.1.1 | 2020年7月14日 |
0.1.0 | 2020年7月13日 |
20 在 #更简单 中排名
每月935 次下载
在 oryx 中使用
6KB
60 行
更简单定时器
该库提供了一种非常简单的基于轮询的定时器。
要使用它,请在 Cargo.toml
中包含以下内容
[dependencies]
simpler_timer = "0.2.0"
use simpler_timer::Timer;
use std::time::Duration;
fn main() {
let periodic = Timer::with_duration(Duration::from_millis(100));
let timeout = Timer::with_duration(Duration::from_secs(2));
loop {
if periodic.expired() {
println!("tick");
periodic.reset();
}
if timeout.expired() {
break;
}
}
println!("total elapsed time: {}ms", timeout.elapsed().as_millis());
}
lib.rs
:
simpler_timer
这是一个简单的定时器机制,用于跟踪任意超时。它不做任何复杂的事情,例如没有在超时时的回调,只需给它一个持续时间并轮询定时器是否已过期。定时器可以被重置并重复使用,例如在简单的基于时间的控制循环等周期性上下文中。
示例
use std::time::Duration;
// 100ms timer
let tick = Timer::with_duration(Duration::from_millis(100));
// 1 sec timer
let end = Timer::with_duration(Duration::from_secs(1));
loop {
if tick.expired() {
// do something interesting
println!("tick");
tick.reset();
}
if end.expired() {
// don't reset, let's get out of here
break;
}
}
println!("total time: {}ms", end.elapsed().as_millis());