Quelle est la meilleure façon d'exécuter du code sur un thread distinct? Est-ce:
[NSThread detachNewThreadSelector: @selector(doStuff) toTarget:self withObject:NULL];
Ou:
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
selector:@selector(doStuff:)
object:nil;
[queue addOperation:operation];
[operation release];
[queue release];
J'ai fait la deuxième façon, mais le livre de cuisine Wesley que j'ai lu utilise la première.
Le meilleur moyen pour le multithreading sous iOS est d'utiliser GCD (Grand Central Dispatch).
la source
J'essaierais toutes les techniques que les gens ont postées et voir laquelle est la plus rapide, mais je pense que c'est la meilleure façon de le faire.
la source
J'ai ajouté une catégorie sur NSThread qui vous permettra d'exécuter facilement des threads en blocs. Vous pouvez copier le code à partir d'ici.
https://medium.com/@umairhassanbaig/ios-how-to-perform-a-background-thread-and-main-thread-with-ease-11f5138ba380
la source