首页 > 解决方案 > Swift Dispatch Group 问题线程问题

问题描述

这样写的代码会不会有什么潜在的bug?基本上,调度组的通知闭包已经在主线程上,但我的技术负责人在通知闭包内再次在 main 上添加了 DispatchQueue。我试图推动删除DispatchingQueue.main.async {}呼叫,但他们的回应是它已经被 QA-ed 并告诉我不要碰它,担心我可能会导致错误。

会不会有线程问题?

func foo(completion: @escaping () -> Void) {
     let group = DispatchGroup()
     
     group.enter()
     self.fetchData1() {
         // code
         group.leave()
     }

     group.enter()
     self.fetchData2() {
         // code
         group.leave()
     }

     group.notify(queue: .main) {
         DispatchQueue.main.async {
          // code
          return completion() //yeah... idk why it's written like this
         }
     }

}

标签: iosswiftxcodeasynchronousdispatchgroup

解决方案


推荐阅读