我需要在一个单独的线程中一个一个地做一些方法而不会中断,就像我在课堂上那样
fileprivate var queue = DispatchQueue(label: "ProgressHUD", qos: .userInteractive)
当我需要显示/隐藏时,我会这样做
queue.sync {
__hide()
}
或者
queue.sync {
__show()
}
在这种__%%()
方法中,我需要在主线程中对 UI 进行一些操作,并且我需要从 --show/--hide 中执行所有操作,而不会中断。所以在内部,我使用
private func __show()
{
let g = DispatchGroup()
g.enter()
DispatchQueue.main.async {
print("go?")
self.doMyAction1()
self.doMyAction2()
self.doMyAction3()
g.leave()
}
g.wait()
}
但该应用程序始终在线冻结,g.wait()
不调用main.async
也不打印go?
。我做错了什么!?