HID报告不同runLoop上的回调

时间:2012-02-11 07:35:08

标签: objective-c nsrunloop

我使用IOHIDManagerScheduleWithRunLoop在主线程(runLoop)上安排了HIDManager。 所以,我得到了设备匹配&删除主线程上的回调。

但是,我已经在不同的线程上安排了设备IOHIDDeviceScheduleWithRunLoop,Say Thread-1。根据它的文档,当我设置报告时,我应该在Thread-1 RunLoop上收到回调。

IOHIDDeviceScheduleWithRunLoop(inIOHIDDeviceRef,CFRunLoopGetCurrent(),kCFRunLoopDefaultMode);

但是,我正在接收主线程上的HIDReport回调。 有什么帮助吗?

更新

我看到即使我删除了IOHIDDeviceScheduleWithRunLoop,也会调用报告回调。应该在设备RunLoop上调用报告回调。

根据IOHIDManagerScheduleWithRunLoop的文档,“这正式将HID管理器与客户端的运行循环相关联。此计划将传播到当前枚举的所有HID设备以及HID管理器匹配的新HID设备”< / p>

这应仅用于匹配和删除,但我也要获取输入报告。

1 个答案:

答案 0 :(得分:0)

你在线程1上有一个runloop吗?如果它是命令行应用程序,则必须显式启动运行循环(通过调用实例CFRunLoopRun())