Swift-GCD

作者: 男人宫 | 来源:发表于2020-04-16 14:50 被阅读0次
    • 延迟执行
    //DispatchTime.now() 获取当前时间
     DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) {
       //需要进行的操作
     }
    
    • 异步进行耗时操作,主线程进行用户交互以及刷新UI的操作
     //开启一个全局的异步队列
     DispatchQueue.global().async {
        //耗时操作
        DispatchQueue.main.async {
          //进行UI刷新和用户交互
           }  
       }
    
    • 处理多数据请求,所有请求完毕进行UI更新(数据进行并发请求)
           //创建调度器
            let workingGroup = DispatchGroup()
            //创建队列
            let workingQueue = DispatchQueue(label: "request_data")
            //第一个网络请求
            workingGroup.enter()
            workingQueue.async {
                 //进行数据请求1
                  workingGroup.leave()
                }
           //第二个网络请求
            workingGroup.enter()
            workingQueue.async {
                 //进行数据请求2
                  workingGroup.leave()
                }
        //请求完毕
          workingGroup.notify(queue: .main) {
                //进行UI的更新
            }
    
    • 多任务依次请求
        PS:数据请求返回时是异步回调,用普通的请求你可以确保它的调用顺,但无法确保它的返回结果的回调顺序
    

    相关文章

      网友评论

          本文标题:Swift-GCD

          本文链接:https://www.haomeiwen.com/subject/qlvrvhtx.html