objective-c - 调度队列和调度组如何工作?
问题描述
我是objective-c的新手,目前我正在编写从服务器下载文件然后对下载的文件进行一些操作的代码。我对调度队列和调度组感到困惑。
所以我有一个名为 dowanloadZip 的函数,在这个 downloadZip 函数中,我正在使用另一个名为 startHttp 的函数来触发请求,但是这个函数是异步的,我需要等到完成块完成然后我才能继续检查文件是否完整,做一些事情等等。基本上,我需要等到完成块完成然后我才能继续做其他事情。我的代码看起来像这样:
-(void)downloadZip:(NSString *url){
...
urlRequest = [reqeustMangaer urlStrig:url]
[requestManager startHttp:urlReuqest completionBlock:^(resposne){
//check response here
}]
}
有人告诉我使用调度队列,但其他人说使用调度组,我发现一些代码实际上两者都使用。我阅读的代码首先使用调度全局队列,然后在队列中使用调度组进入。那么我应该先创建一个调度队列,然后进入完成块内的组吗?还是只使用调度组?(我希望它在后台线程上)。我也想知道,如果我需要在其他地方调用 downloadZip 函数,我该怎么办?
解决方案
推荐阅读
- python - 您将如何递归获取列表中的所有项目组合
- javascript - 我可以在 javascript 中将对象推送到 forEach() 中吗?
- .net-core - 如何在 MSAL.NET 上使用 oAuth 状态参数
- azure - 如何使用 Microsoft SignalR 离线开发 Azure Functions 应用程序?
- python - 在一组 Pandas 数据框中应用一个值
- javascript - 处理回调选项在 jQuery 文件上传中不起作用
- vba - 如何在运行时将用户窗体控件绑定到记录集?
- java - 数组实例变量是否与setter方法摄入无关?
- c# - C# - 无法读取 HKLM 注册表项(对象引用未设置为对象的实例)
- azure - 如何在 Azure 中为 OAuth2 添加 IPv6 环回地址作为重定向 uri?