【发布时间】:2018-03-14 20:20:07
【问题描述】:
我在后台线程上运行的类中使用 DispatchGroup。偶尔需要更新UI,所以调用如下代码:
dispatchGroup.notify(queue: .main) {
self.delegate?.moveTo(sender: self, location: location)
self.delegate?.updateLabel(sender: self, item: self.currentItem)
}
不幸的是,什么也没发生。但是,如果我通过DispatchQueue.main.async { } 调用相同的代码,如下所示:
DispatchQueue.main.async {
self.delegate?.moveTo(sender: self, location: location)
self.delegate?.updateLabel(sender: self, item: self.currentItem)
}
...委托调用成功。我的印象是dispatchGroup.notify(queue: .main) { } 相当于DispatchQueue.main.async { }。
为什么这些不一样?
【问题讨论】:
标签: ios swift grand-central-dispatch