IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

thread en objective c


Sujet :

Objective-C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut thread en objective c
    je suis un debutant en objective c j'aimerai bien connaitre si les thread en objective c sont les meme que java??
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par slix_alex Voir le message
    je suis un debutant en objective c j'aimerai bien connaitre si les thread en objective c sont les meme que java??
    merci
    Cocoa dispose de NSThread qui encapsule les pthreads.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // création du Thread
     
    // task : instance du classe ayant un selector -(void)mainEntryPoint:(id)inParam qui fait le "boulot"
    // et éventuellement un champ delegate qui contiendra un objet qui répond à un protocole quelconque
    // que l'on définira pour assurer les callbacks qui doivent s'exécuter sur le Main Thread (par exemple rafraîchir l'UI)
    // par exemple ici une méthode -(void)myDelegateProtocolCallback:(id)message, voir plus bas
     
    SomeClass *task = [[SomeClass alloc] initWithSomeParam:… andDelegate:… ] ;
    [NSThread detachNewThreadSelector:@selector(mainEntryPoint:) toTarget:task withObject:someParam]	;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    // threaded task object
    - (void)mainEntryPoint:(id)inParam
    {
    	NSAutoreleasePool *localPool;
     
    	while(![self jobIsDone])
    	{
    		localPool = [[NSAutoreleasePool alloc] init];
     
    		// ... do the job ...
     
     
    		if( /* something to be updated in the UI */ )
    		{
    			[delegate performSelectorOnMainThread:@selector(myDelegateProtocolCallback:) withObject:somethingToTellToMainThread waitUntilDone:NO];
    		}
     
    		[localPool drain];
    	}
    }

    Notez que vous pouvez aussi faire des threads avec Grand Central Dispatch, c'est un peu plus compliqué à appréhender mais l'overhead de création d'une tâche est environ 100x moindre que celui de la création d'un pthread.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 15
    Points
    15
    Par défaut
    merci bcp pour votre explication.
    je cherche un doc ou un lien qui traite les threads en objective c.
    j'ai cherche mais j'ai rien trouver

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 936
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 936
    Points : 4 356
    Points
    4 356
    Par défaut
    Citation Envoyé par slix_alex Voir le message
    merci bcp pour votre explication.
    je cherche un doc ou un lien qui traite les threads en objective c.
    j'ai cherche mais j'ai rien trouver
    parce que "thread en objective-c" est une mauvaise cible de recherche…

    les seules choses qui sont relatives aux threads dans Objective-C à strictement parler c'est le mot clé @synchronized qui sert à marquer les zone critiques (nouveauté de Objective-C 2.0) et "atomic" comme paramètre de @property.

    article sur le site d'Apple

    Par contre, Cocoa (et GNUStep aussi) encapsule les objects habituels Posix dans les classes : NSThread, NSLock, NSRecursiveLock.

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je suis débutante en objective C. Je souhaiterais savoir comment lancer un thread dès le lancement d'une application.

    Au faite je veux faire appel à une méthode(faire un thread qui appelle cette méthode dès le lancement de l application jusqu'à l’arrêt de l application)

    Merci d'avance pour votre réponse

Discussions similaires

  1. [THREAD] TypeError: NoneType' object is not callable
    Par flolebreton dans le forum Général Python
    Réponses: 2
    Dernier message: 24/06/2013, 14h49
  2. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  3. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53
  4. Réponses: 5
    Dernier message: 12/06/2002, 15h12
  5. [Kylix] Pb de Thread !!
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 25/04/2002, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo