相关疑难解决方法(0)

了解dispatch_async

我对此代码有疑问

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSData* data = [NSData dataWithContentsOfURL: 
      kLatestKivaLoansURL];
    [self performSelectorOnMainThread:@selector(fetchedData:) 
      withObject:data waitUntilDone:YES];
});
Run Code Online (Sandbox Code Playgroud)

这段代码的第一个参数是

dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) 
Run Code Online (Sandbox Code Playgroud)

我们是否要求此代码在全局队列上执行串行任务,其定义本身是返回给定优先级的全局并发队列?

使用dispatch_get_global_queue主队列有什么好处?

我很迷惑.你能帮我更好地理解这个吗?

asynchronous objective-c dispatch-async

230
推荐指数
3
解决办法
23万
查看次数

串行队列/专用调度队列如何知道任务何时完成?

(或许通过串行调度队列如何保证资源保护来回答但我不明白如何)

gcd如何知道异步任务(例如网络任务)何时完成?我应该使用dispatch_retaindispatch_release为此目的吗?更新:我不能用ARC调用这些方法中的任何一个......怎么办?

细节

我正在与进行大量网络访问的第三方库进行交互.我已经通过一个小类创建了一个包装器,它基本上提供了我需要的所有方法来自第三方类,但包装调用dispatch_async(serialQueue) { () -> Void in(其中serialQueue是我的包装类的成员).

我试图确保每个对底层库的调用在下一次开始之前完成(某种程度上,它尚未在库中实现).

grand-central-dispatch ios swift

7
推荐指数
1
解决办法
3793
查看次数