iphone ios ejecutando en hilo separado

¿Cuál es la mejor manera de ejecutar código en un hilo separado? Lo es:

[NSThread detachNewThreadSelector: @selector(doStuff) toTarget:self withObject:NULL]; 

O:

  NSOperationQueue *queue = [NSOperationQueue new]; NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doStuff:) object:nil; [queue addOperation:operation]; [operation release]; [queue release]; 

He estado haciendo la segunda forma, pero el libro de cocina Wesley que he estado leyendo usa el primero.

En mi opinión, la mejor manera es con libdispatch, también conocido como Grand Central Dispatch (GCD). Te limita a iOS 4 y superior, pero es tan simple y fácil de usar. El código para hacer algo de procesamiento en un hilo de fondo y luego hacer algo con los resultados en el ciclo de ejecución principal es increíblemente fácil y compacto:

 dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Add code here to do background processing // // dispatch_async( dispatch_get_main_queue(), ^{ // Add code here to update the UI/send notifications based on the // results of the background processing }); }); 

Si aún no lo ha hecho, consulte los videos de la WWDC 2010 en libdispatch / GCD / blocks.

La mejor manera para el multihilo en iOS es usar GCD (Grand Central Dispatch).

 //creates a queue. dispatch_queue_t myQueue = dispatch_queue_create("unique_queue_name", NULL); dispatch_async(myQueue, ^{ //stuffs to do in background thread dispatch_async(dispatch_get_main_queue(), ^{ //stuffs to do in foreground thread, mostly UI updates }); }); 

Probaría todas las técnicas que las personas publicaron y veré cuál es la más rápida, pero creo que esta es la mejor manera de hacerlo.

 [self performSelectorInBackground:@selector(BackgroundMethod) withObject:nil]; 

He agregado una categoría en NSThread que te permitirá ejecutar hilos en bloques con facilidad. Puedes copiar el código desde aquí.

https://medium.com/@umairhassanbaig/ios-how-to-perform-a-background-thread-and-main-thread-with-ease-11f5138ba380