Trigger OSX runloop de Qt
-
27-10-2019 - |
Question
Je vous écris une application en C ++ avec Qt sur Mac. Je veux détecter les disques étant montés et démontés, donc je suis en utilisant le cadre de DiskArbitration. Je me suis inscrit des fonctions de rappel via DARegisterDiskAppearedCallback
et DARegisterDiskDisappearedCallback
mais ceux-ci seulement le feu quand il y a un runloop.
Quelle est la meilleure façon de commencer une runloop appropriée?
QThread avec CFRunLoopRun
(semble un peu excessive)?
S'il vous plaît donner des détails, je suis pas très au courant des fils.
La solution
Sur OS X 10.7+ vous pouvez utiliser DASessionSetDispatchQueue
d'avoir vos callbacks sur une file d'attente invoqués d'expédition de votre choix. Vous pouvez ensuite transmettre les données correspondantes de la fonction de rappel sur votre boucle d'événement Qt régulier.