Pregunta

Estoy escribiendo una aplicación en C ++ usando QT en Mac. Quiero detectar las unidades montadas y desmontadas, así que estoy usando el marco de diskarbitration. Registré algunas funciones de devolución de llamada a través de DARegisterDiskAppearedCallback y DARegisterDiskDisappearedCallback Pero estos solo disparan cuando hay un runloop.

¿Cuál es la mejor manera de comenzar un runloop adecuado?

QTHREAD con CFRunLoopRun (suena un poco excesivo)?

Por favor, dé detalles, no estoy bien versado en los hilos.

¿Fue útil?

Solución

En OS X 10.7+ puede usar DASessionSetDispatchQueue Para que sus devoluciones de llamada se invocen en una cola de despacho de su elección. Luego puede reenviar los datos de la devolución de llamada a su bucle de evento QT normal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top