documentacion developer ios xcode multithreading multitasking shared-resource

developer - iOS-Garantizar la ejecución en el hilo principal



ios frameworks (4)

Esta pregunta ya tiene una respuesta aquí:

Quiero saber cómo llamar a mi function en el hilo principal .

¿Cómo me aseguro de function se llame a mi function en el hilo principal ?

(Esto sigue a una question previa mía).


¿Hay alguna regla que pueda seguir para asegurarme de que mi aplicación ejecute mi propio código solo en el hilo principal?

Por lo general, no es necesario que haga nada para garantizar esto; su lista de cosas suele ser suficiente. A menos que esté interactuando con alguna API que genere un hilo y ejecute su código en segundo plano, se ejecutará en el hilo principal.

Si quieres estar realmente seguro, puedes hacer cosas como

[self performSelectorOnMainThread:@selector(myMethod:) withObject:anObj waitUntilDone:YES];

para ejecutar un método en el hilo principal. (También hay un equivalente GCD).


Creo que esto es genial, aunque en general es una buena forma dejar a la persona que llama de un método responsable de garantizar que se llame al hilo correcto.

if (![[NSThread currentThread] isMainThread]) { [self performSelector:_cmd onThread:[NSThread mainThread] withObject:someObject waitUntilDone:NO]; return; }


Esto lo hará:

[[NSOperationQueue mainQueue] addOperationWithBlock:^ { //Your code goes in here NSLog(@"Main Thread Code"); }];

¡Espero que esto ayude!


Cuando usas iOS> = 4

dispatch_async(dispatch_get_main_queue(), ^{ //Your main thread code goes in here NSLog(@"Im on the main thread"); });