6 个版本
0.3.2 | 2023年9月13日 |
---|---|
0.3.1 | 2023年9月13日 |
0.2.1 | 2023年9月13日 |
0.1.0 | 2023年9月3日 |
#4 在 #accuracy
7KB
isleep
提供间歇性睡眠的函数 snooze
和 accurate_snooze
,它们返回中间的控制流程。
依赖于平台对 std::time
和 std::thread
的支持。
示例
// Sleeping for a total of 1 s
let total = std::time::Duration::from_secs(1);
// Interrupting the sleep after 100 ms
let len = std::time::Duration::from_millis(100);
// Starting now
let start = std::time::Instant::now();
// Sleeps for `total` in steps up to `len`
// Wont sleep longer than `total` within accuracy of the platform
while snooze(start, total, len) {
println!("Checking if the user pressed CTRL+C...");
}
准确性
准确性取决于平台,对于短时间(例如,Windows上的小于20 ms)可能较低。可以使用 accuracy
功能和 accurate_snooze
来提高准确性,后者利用 spin_sleep。
cargo添加 isleep --功能=accuracy
lib.rs
:
提供间歇性睡眠的函数 snooze 和 accurate_snooze,它们返回中间的控制流程。
依赖于平台对 std::time
和 std::thread
的支持。
示例
// Sleeping for a total of 1 s
let total = std::time::Duration::from_secs(1);
// Interrupting the sleep after 100 ms
let len = std::time::Duration::from_millis(100);
// Starting now
let start = std::time::Instant::now();
// Sleeps for `total` in steps up to `len`
// Wont sleep longer than `total` within accuracy of the platform
while isleep::snooze(start, total, len) {
println!("Checking if the user pressed CTRL+C...");
}
准确性
准确性取决于平台,对于短时间(例如,Windows上的小于20 ms)可能较低。可以使用 accuracy
功能和 accurate_snooze 来提高准确性,后者利用 spin_sleep。
cargo添加 isleep --功能=accuracy
依赖关系
~0–6.5MB
~29K SLoC