Filetage en Objective-C
Sont il threads en Objective-C? Si oui, comment sont-ils déclarés et utilisés?
Si quelqu'un sait sur le multithreading en Objective-C, s'il vous plaît partager avec moi.
Merci et salutations.
Vous devez vous connecter pour publier un commentaire.
Un moyen facile de juste spin-off d'une méthode dans un nouveau thread est à utiliser.
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
surNSThread
. Si vous n'exécutez pas ces ordures, vous devez configurer votre propre autorelease pool.Un autre moyen facile si vous ne voulez pas bloquer le thread principal est à utiliser.
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
surNSObject
En fonction du type de simultanéité vous êtes après, vous devriez aussi jeter un oeil à
NSOperation
qui peut vous donner gratuitement de verrouillage de sorte que vous pouvez les partager entre plusieurs threads, entre autres choses.Si vous êtes en développement à l'aide de Cacao (c'est à dire pour le mac ou l'iphone), vous avez accès à la
NSThread
classe, qui peut être utilisé pour le multithreading. Googler pourNSThread
trouverez vous l'API.Vous pouvez le déclarer comme à l'aide d':
Où la cible et le sélecteur est l'objet et le sélecteur vous souhaitez démarrer un thread avec, et l'argument est un argument pour envoyer du sélecteur.
Puis utilisez [mythread start] pour lancer.
Oui, il y enfiler des concepts en Objective C. et il y a plusieurs façon de réaliser le multi threading en objective C.
1> NSThread
Cela va créer un nouveau thread en arrière-plan. à partir de votre thread principal.
2> à l'Aide de performSelector
va de l'INTERFACE utilisateur d'effectuer des tâches sur votre thread principal si vous appelez cela du thread d'arrière-plan... Vous pouvez également utiliser
Qui permettra de créer un thread d'arrière-plan.
3> à l'Aide de NSoperation
Suivez ce lien
4> à l'Aide de PGCD
Sera
callWebService
dans le thread d'arrière-plan et une fois que c'est terminé. IlupdateUI
dans le thread principal.Plus sur le PGCDC'est presque tous les moyens de multithreading qui est utilisé dans iOS. espérons que cette aide.
Vous pouvez également regarder dans NSOperation
Pour voir un exemple de cela, jetez un oeil à Drew McCormack post sur MacResearch.
Avant d'aller loin avec des trucs comme detachNewThreadSelector: assurez-vous de vérifier d'Apple documentation officielle. Pour un aperçu de haut niveau des options (y compris la gestion des files d'attente, envoi des files d'attente, et par exemple), il y a le La Simultanéité Guide De Programmation. Et, pour un coup d'oeil à un niveau inférieur (et moins recommandé) threading, il y a le Filetage Guide De Programmation.
Vous ne voulez certainement pas de commencer à tourner fils sans la lecture de ce que Apple a à dire sur le sujet en premier. Ils ont fait beaucoup de travail avec des trucs comme PGCD pour le rendre plus sûr et plus facile d'écrire des programmes simultanés.