首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多线程上使用hid对象

如何在多线程上使用hid对象
EN

Stack Overflow用户
提问于 2022-02-05 10:21:44
回答 1查看 94关注 0票数 0

我使用铁锈与StreamDeck交互,使用hid (https://crates.io/crates/hid)库。

我想:

  • 从hid设备读取以登记按钮按下和释放。
  • 写入设备以设置按钮上的图像。

因为从设备读取是阻塞的,我想在不同的线程上这样做。

为了与hid设备交互,它创建了一个Handle (https://github.com/meh/rust-hid/blob/master/src/handle.rs#L8),它不能在线程之间移动,因为它包含一个ptr: *mut hid_device

代码语言:javascript
复制
(the trait `Send` is not implemented for `*mut c_void`)

有什么方法可以使用多线程的句柄吗?一本我读,另一本我写。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-05 16:31:05

有多种可能的选项,但我建议使用通道,例如tokio的mpsc信道

其想法是创建一个专用线程,用于与设备对话,并且只在该线程中使用句柄。您希望接收或发送的事件和命令可以发送到相应的通道,并在主“控制器”线程中处理。

看看本教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70997064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档