我对同步工作与异步有疑问。 例如,我们有这个代码:
[[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阻塞,是不是?