Enviando mensajes desde el hilo de fondo al hilo principal en iOS
Tengo una aplicación para iOS donde estoy completando tareas en el hilo de fondo. A medida que se completa cada tarea, quiero enviar un mensaje al hilo principal para poder moverme a lo largo de mi barra de progreso personalizada a la etapa apropiada.
¿Cuál es la forma más sencilla y segura de lograr esto?
EDITAR 1
Este es el método que estoy usando:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
// get background tasks done.
[self.background backgroundMethod];
});
Editar 2
Aquí hay un ejemplo de lo que intentaría usar la respuesta de @Madboy. Dentro de la clase en la que realizo métodos en segundo plano, tengo un puntero a mi barra de progreso. ¿Creemos que esto funcionaría?(Tenga en cuenta el cambio también a EDIT 1).
@implementation BackgroundClass
@synthesize delegate;
@synthesize customProgressBar
- (void)backgroundMethod
{
// Run tasks
}
- (void)delegateSaysBackgroundMethodIsFinished
{
[self performSelectorOnMainThread:@selector(tasksDone:) withObject:self.customProgressBar waitUntilDone:NO];
}
@implementation CustomProgressBar
- (void)tasksDone
{
// change UI to reflect progress done.
}