使用DispatchGroup在两个不同的类之间进行通信?

时间:2018-08-31 22:59:25

标签: ios swift multithreading asynchronous

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

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





}

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

0 个答案:

没有答案