如何正确使用异步libusb?

问题描述

我在我的 Qt 项目中使用了同步 lib​​usb,结果很好,现在我需要这个库的异步功能。我理解阅读 hereherehere,在我使用 libusb_fill_control_transfer 注册回调函数并使用 libusb_submit_transfer 提交转账后,我需要由于 libusb 没有自己的线程,因此在 while 循环中“保持活动” libusb_handle_events_completed获取与传输相关的事件。例如你可以阅读这样的代码

libusb_fill_control_transfer(transfer,dev,buffer,cb,&completed,1000);
libusb_submit_transfer(transfer);
while (!completed) {
    libusb_handle_events_completed(ctx,&completed);
}

现在,如果我想读取一个我不知道它何时发生的数据包,我认为这与异步性质背道而驰,提交读取并使用 libusb_handle_events_completed 等待直到事件被触发。

>

那么,我是否需要在无限 while 循环中的 libusb_handle_events_completed 中创建一个单独的线程?

在 libusb 库的异步特性方面有经验的任何人都可以就处理传输事件的正确方法提出一些建议吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)