Enviando mensagens do thread de segundo plano para o thread principal no iOS
Eu tenho um aplicativo para iOS em que estou concluindo tarefas no thread em segundo plano. À medida que cada tarefa é concluída, quero enviar uma mensagem para o thread principal para que eu possa mover minha barra de progresso personalizada para o estágio apropriado.
Qual é a maneira mais simples e segura de conseguir isso?
EDITAR 1
Este é o método que estou usando:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
// get background tasks done.
[self.background backgroundMethod];
});
EDIT 2
Aqui está um exemplo do que eu tentaria usar a resposta do @Madboy. Dentro da classe onde eu executo métodos em segundo plano, eu tenho um ponteiro para a minha barra de progresso. Achamos que isso funcionaria?(Por favor, note a mudança também para EDITAR 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.
}