je suis un debutant en objective c j'aimerai bien connaitre si les thread en objective c sont les meme que java??
merci
Version imprimable
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:
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:
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.
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.
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:)