我使用铁锈与StreamDeck交互,使用hid (https://crates.io/crates/hid)库。
我想:
因为从设备读取是阻塞的,我想在不同的线程上这样做。
为了与hid设备交互,它创建了一个Handle (https://github.com/meh/rust-hid/blob/master/src/handle.rs#L8),它不能在线程之间移动,因为它包含一个ptr: *mut hid_device。
(the trait `Send` is not implemented for `*mut c_void`)有什么方法可以使用多线程的句柄吗?一本我读,另一本我写。
发布于 2022-02-05 16:31:05
有多种可能的选项,但我建议使用通道,例如tokio的mpsc信道。
其想法是创建一个专用线程,用于与设备对话,并且只在该线程中使用句柄。您希望接收或发送的事件和命令可以发送到相应的通道,并在主“控制器”线程中处理。
看看本教程。
https://stackoverflow.com/questions/70997064
复制相似问题