Activar OSX Runloop desde QT
-
27-10-2019 - |
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.
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.