Я использую с успехом грандиозную централизованную отправку в своих приложениях, но мне было интересно, что является реальным преимуществом использования чего-то вроде этого:
dispatch_async(dispatch_get_main_queue(), ^{ ... do stuff
или даже
dispatch_sync(dispatch_get_main_queue(), ^{ ... do stuff
Я имею в виду, что в обоих случаях вы запускаете блок, который будет выполняться в основном потоке, именно там, где выполняется приложение, и это не поможет уменьшить нагрузку. В первом случае у вас нет никакого контроля при запуске блока. Я видел случаи, когда блоки выполняются через полсекунды после того, как вы их запускаете. Второй случай, он похож на
[self doStuff];
верно?
Интересно, что вы, ребята, думаете.