我已經使用IOHIDManagerScheduleWithRunLoop在主線程(runLoop)上安排了HIDManager。 因此,我收到主線程上匹配&刪除回調的設備。HID報告回調在不同的runLoop
但是,我在另一個線程上安排了一個設備IOHIDDeviceScheduleWithRunLoop,說線程1。根據它的文檔,當我設置一個報告時,我應該收到Thread-1 RunLoop的回調。
IOHIDDeviceScheduleWithRunLoop(inIOHIDDeviceRef,CFRunLoopGetCurrent(),kCFRunLoopDefaultMode);
但是,我接收主線程上的HIDReport回調。 有什麼幫助嗎?
UPDATE:
我看就算我刪除IOHIDDeviceScheduleWithRunLoop報告回調獲取調用。報告回調應該在設備RunLoop上調用。
根據IOHIDManagerScheduleWithRunLoop的文檔「這正式關聯與客戶端的運行循環的HID管理器。此計劃將傳播到當前枚舉所有的HID設備和新的HID設備,因爲它們是由HID經理匹配」
這應該只用於匹配和刪除,但我也獲取輸入報告。
是的,我正在啓動一個新線程並使用CFRunLoopRun調用它。 但是,在此之前,我已經使用CFGetCurrentRunLoop將它附加到IOHIDDeviceScheduleWithRunLoop – coder000001 2012-02-11 14:38:25