首页 > 解决方案 > 使用 DispatchGroup 在两个不同的类之间进行通信?

问题描述

我开始在主视图控制器中作为子/黑地线程执行任务。

class MainViewController: UIViewController {
let group = DispatchGroup()

override func viewDidLoad() {
        super.viewDidLoad()



        group.enter()


        DispatchQueue.global(qos: .userInteractive).async {[unowned self] in
            self.checkFolders()
            sleep(50)
            print("finished sleeping")

            self.group.leave()

            }

我希望另一个 viewController 阻塞,直到这个子线程完成它的任务。

class FirstTableViewController: UIViewController {

override func viewDidLoad() {

        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        let startingPoint = Date()
        MainViewController().group.wait()
        print("\(startingPoint.timeIntervalSinceNow * -1) seconds elapsed")
       dataCells = createArrayData() //create dataObjects





}

但是,它似乎并没有阻塞。我究竟做错了什么?谢谢你。

标签: iosswiftmultithreadingasynchronous

解决方案


推荐阅读