我已经产生了一个带有无限循环和计时器的线程.
thread::spawn(|| {
let mut timer = Timer::new().unwrap();
let periodic = timer.periodic(Duration::milliseconds(200));
loop {
periodic.recv();
// Do my work here
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,虽然此示例是在Rust 1.0之前创建的,并且此后特定类型已更改或已被删除,但一般问题和概念仍然有效
在基于某些条件的时间之后,我需要从程序的另一部分终止该线程.换句话说,我只想退出无限循环.我该怎么做才能正确?另外,我怎么能暂停这个线程并在以后恢复呢?
我试图使用全局不安全标志来打破循环,但我认为这个解决方案看起来不太好.
我需要在我的程序中通过串口执行一个简单的交换。我找不到任何与串行端口相关的工作示例或文档。我需要打开一个串口,配置一个端口(设置速度、奇偶校验、停止位等),写入/读取二进制数据,然后关闭。
我尝试使用https://github.com/japaric/serial.rs,但是这个库已经过时了(它甚至不能在 Rust 1.0 上编译)。即便如此,这个库也只提供了如何配置串口的功能,而不是使用它。