Отправка сообщений из фонового потока в основной поток на iOS
У меня есть приложение для iOS, где я выполняю задачи в фоновом потоке. Когда каждая задача завершена, я хочу отправить сообщение в главный поток, чтобы я мог перейти на свой пользовательский индикатор выполнения к соответствующему этапу.
Какой самый простой, но самый безопасный способ добиться этого?
РЕДАКТИРОВАТЬ 1
Это метод, который я использую:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
// get background tasks done.
[self.background backgroundMethod];
});
РЕДАКТИРОВАТЬ 2
Вот пример того, что я пытался использовать, используя ответ @ Madboy. В классе, где я выполняю методы в фоновом режиме, у меня есть указатель на мой индикатор выполнения. Мы думаем, что это сработает?(Обратите внимание, что изменение также на 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.
}