Besoin d'un processus d'arrière-plan. Fil?
-
06-09-2019 - |
Question
J'ai besoin d'un processus d'arrière-plan pour exécuter toutes les minutes. Je ne veux pas que ce processus d'interférer avec la capacité de réaction du reste de l'application. Serait-ce un bon candidat pour un fil? Si oui, comment suggérez-vous que je mets le fil - en particulier, quelles classes / méthodes serait bon de se pencher sur
?La solution
Cela dépend de la façon dont étroitement lié le processus d'arrière-plan. Il serait peut-être une meilleure idée de faire un programme distinct qui fonctionne en arrière-plan.
Pour commencer, jetez un oeil à guide pour threads .
programmation multithread est pas pour les faibles de cœur, de sorte que vous aurez envie de vous assurer de comprendre les idées mises en garde et derrière - et probablement essayer d'autres solutions en premier. Si ce « processus d'arrière-plan » est pas très lourd, vous pouvez certainement vous en sortir avec juste utiliser une minuterie sur votre thread principal. Si ce n'est pas étroitement liée à un programme « travailleur » internals de votre application pourrait être une bonne idée.
Autres conseils
On dirait un très bon candidat pour NSOperation
et NSOperationQueue
- package votre unité de travail comme une opération et le feu hors tension lorsque cela est nécessaire. Pour faire la « toutes les minutes » peu, NSTimer
est l'option sans surprise.
Cela dépend vraiment de ce que le processus d'arrière-plan est en train de faire, quelles ressources at-il besoin d'accès et ainsi de suite. Si vous voulez juste appeler someMethod: chaque minute puis utilisez un NSTimer. Si vous avez vraiment besoin de quelque chose comme NSOperationQueue, je suggère à la recherche dans ce remplacement qui traite quelques bugs dans la mise en œuvre actuelle.