2012-01-13 4 views
2

Я пишу приложение на C++, используя Qt на Mac. Я хочу обнаружить диски, которые монтируются и размонтируются, поэтому я использую инфраструктуру DiskArbitration. Я зарегистрировал некоторые функции обратного вызова через DARegisterDiskAppearedCallback и DARegisterDiskDisappearedCallback, но это только огонь, когда есть runloop.Trigger OSX runloop от Qt

Каков наилучший способ начать подходящую рабочую зону?

QThread с CFRunLoopRun (звучит немного чрезмерно)?

Просьба сообщить подробности, я не очень разбираюсь в потоках.

+0

Возможно ли выполнить 'CFRunLoopRun' из' QThread'? Я хочу использовать его для некоторой библиотеки, у которой нет специализированного метода, такого как 'DASessionSetDispatchQueue'. – dashesy

ответ

2

В OS X 10.7+ вы можете использовать DASessionSetDispatchQueue, чтобы ваши обратные вызовы вызывались в очереди отправки по вашему выбору. Затем вы можете перенаправить данные из обратного вызова в ваш обычный цикл событий Qt.

Смежные вопросы