Pendant que je fais d'habitude l'utilisation de NSOperation pour avoir un fil faire une tâche courte/opération, je voudrais avoir un fil dédié longue durée de vie qui est toujours disponible pour traiter certaines opérations. Pour cela, j'Alloue une nouvelle NSThread et utilise la méthode initWithTarget:Une bonne façon de commencer/continuer runloop
- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
Ma compréhension est le sélecteur passé en devrait être la méthode principale du fil qui est responsable pour le démarrage du runloop. Quel est le bon code à avoir ici?
est une boucle while comme celui-ci ... approprié
(void)newThreadMainMethod {
while(1) {
[[NSThread currentThread] run];
}
}
ou est-il un moyen de faire plus efficace pour que le fil ne prend pas des ressources avec une boucle sans fin? Je pensais à une minuterie qui s'éveillerait toutes les 0,5 secondes et j'appellerais courir sur le fil au cas où quelque chose de nouveau serait disponible pour travailler. J'apprécierais votre contribution.
Merci.
Je ferais certainement un profil pour m'assurer que c'est en fait plus rapide que NSOperation, parce qu'il semble assez probable que NSOperationQueue fasse déjà ce dont vous parlez. – Chuck