小编fmv*_*vin的帖子

如何从另一个线程终止或暂停Rust线程?

我已经产生了一个带有无限循环和计时器的线程.

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之前创建的,并且此后特定类型已更改或已被删除,但一般问题和概念仍然有效

在基于某些条件的时间之后,我需要从程序的另一部分终止该线程.换句话说,我只想退出无限循环.我该怎么做才能正确?另外,我怎么能暂停这个线程并在以后恢复呢?

我试图使用全局不安全标志来打破循环,但我认为这个解决方案看起来不太好.

multithreading rust

13
推荐指数
2
解决办法
7769
查看次数

如何在 Rust 中使用串行端口?

我需要在我的程序中通过串口执行一个简单的交换。我找不到任何与串行端口相关的工作示例或文档。我需要打开一个串口,配置一个端口(设置速度、奇偶校验、停止位等),写入/读取二进制数据,然后关闭。

我尝试使用https://github.com/japaric/serial.rs,但是这个库已经过时了(它甚至不能在 Rust 1.0 上编译)。即便如此,这个库也只提供了如何配置串口的功能,而不是使用它。

serial-port rust

4
推荐指数
2
解决办法
8369
查看次数

标签 统计

rust ×2

multithreading ×1

serial-port ×1