使用Async块的同步方法

时间:2014-10-13 07:58:05

标签: objective-c asynchronous sync

我对同步工作与异步有疑问。 例如,我们有这个代码:

[[WebClient shared] getSomeInfoWithParam:param handler:^(WebResponce *responce) {

    if (!responce.error)
    {
        [UI setUIWithDict:responce.dictionary];
    }
}];

我非常有趣,如果将此代码包装到后台异步中怎么办?它会提高生产率还是没有?

  dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
    [[WebClient shared] getSomeInfoWithParam:param handler:^(WebResponce *responce) {

        if (!responce.error)
        {
            dispatch_async(dispatch_get_main_queue(), ^(void){
                [UI setUIWithDict:responce.dictionary];
            });
        }
    }];
    });

最有趣的时刻,无论如何它必须是同步的,所以首先我通过块回调获取信息然后设置ui,无论如何都有某种UI阻塞,是不是?

0 个答案:

没有答案