Equivalent de dispatch_get_main_queue() en API haut niveau
Flo
Membre
Bonjour à tous,
je cherche à insérer des opérations dans la "main queue" (celle qui est associée au "main thread"). Ce sont des opérations de mise à jour GUI. Je n'ai pas trouvé comment faire un équivalent de dispatch_get_main_queue() en API de haut niveau...
A moins que ce ne soit ce que fait la méthode performSelectorOnMainThread:withObject:waitUntilDone: de NSObject ?
Merci pour votre aide
je cherche à insérer des opérations dans la "main queue" (celle qui est associée au "main thread"). Ce sont des opérations de mise à jour GUI. Je n'ai pas trouvé comment faire un équivalent de dispatch_get_main_queue() en API de haut niveau...
A moins que ce ne soit ce que fait la méthode performSelectorOnMainThread:withObject:waitUntilDone: de NSObject ?
Merci pour votre aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il faut utiliser +mainQueue de NSOperationQueue.
Il manque 2-3 trucs, comme les dispatch_semaphore mais en même temps on en a rarement besoin.
NB : J'ai été surpris dernièrement de lire dans la doc que NSOperationQueue n'utilisait pas GCD sur iPhone (à moins que la doc n'ait pas été mise à jour et date d'avant que GCD ne soit dispo sous iOS ?) : du coup (histoire d'être sûr) dans mon programme qui tourne pour moi sous iOS j'ai préféré utiliser l'API C de GCD (et à vrai dire une fois qu'on l'a un peu utilisé elle n'est pas plus compliquée que NSOperation c'est juste du C)
Mais bon ta question portant sur MacOSX pour toi ça ne devrait rien changer
Ce qui est plutôt magique c'est qu'un développeur qui utilisait déjà les concepts d'opération et de file peut l'utiliser sans rien changer à son code
J'ai fortement hésité avant de l'utiliser à la place des appels directs en C, je trouvais ça vraiment trop bizarre de se retrouver avec du code "bas niveau" en plein milieu d'une méthode