首页 > 解决方案 > 调度队列和调度组如何工作?

问题描述

我是objective-c的新手,目前我正在编写从服务器下载文件然后对下载的文件进行一些操作的代码。我对调度队列和调度组感到困惑。

所以我有一个名为 dowanloadZip 的函数,在这个 downloadZip 函数中,我正在使用另一个名为 startHttp 的函数来触发请求,但是这个函数是异步的,我需要等到完成块完成然后我才能继续检查文件是否完整,做一些事情等等。基本上,我需要等到完成块完成然后我才能继续做其他事情。我的代码看起来像这样:

-(void)downloadZip:(NSString *url){
  ...
  urlRequest = [reqeustMangaer urlStrig:url]
  [requestManager startHttp:urlReuqest completionBlock:^(resposne){
     //check response here
  }]  
}

有人告诉我使用调度队列,但其他人说使用调度组,我发现一些代码实际上两者都使用。我阅读的代码首先使用调度全局队列,然后在队列中使用调度组进入。那么我应该先创建一个调度队列,然后进入完成块内的组吗?还是只使用调度组?(我希望它在后台线程上)。我也想知道,如果我需要在其他地方调用 downloadZip 函数,我该怎么办?

标签: objective-cdispatch-asyncdispatch-queue

解决方案


推荐阅读