Нужна ли в данном случае dispatch_async(dispatch_get_main_queue(), …)?

Я пришел через этот кусок кода, и я не могу понять, почему автор это сделал. Взгляните на этот код:

someMethodStandardMethodUsingABlock:^() {
    dispatch_async(dispatch_get_main_queue(), ^{
        [[NSNotificationCenter defaultCenter] postNotificationName:"notif" object:nil];
    });
}];

У меня есть метод с блоком завершения, и в этом блоке должно быть размещено уведомление. Я не совсем понимаю, зачем в этом случае dispatch_asyncв основной очереди. Блок уже будет запущен в основном потоке, и даже если бы это было не так, я не думаю, что это действительно имело бы значение, не так ли? Я бы просто написал это:

someMethodStandardMethodUsingABlock:^() {
    [[NSNotificationCenter defaultCenter] postNotificationName:"notif" object:nil];
}];

И это действительно работает в моем тестировании.

Если вы поможете мне пролить свет на это, я буду вам очень признателен!

Matt

5
задан MGA 5 March 2012 в 04:21
поделиться