我想做一個漫長的後臺操作,完成後我需要刷新的TableView大中央調度,檢查任務完成
let globalQueue = DispatchQueue.global()
globalQueue.async {
//My lengthy code
}
我需要的異步任務後做這樣就完成
treeview.reloadData()
我如何掛鉤到GCD任務完成事件?我有C#背景,我是SWIFT的新成員..請指教。
我想做一個漫長的後臺操作,完成後我需要刷新的TableView大中央調度,檢查任務完成
let globalQueue = DispatchQueue.global()
globalQueue.async {
//My lengthy code
}
我需要的異步任務後做這樣就完成
treeview.reloadData()
我如何掛鉤到GCD任務完成事件?我有C#背景,我是SWIFT的新成員..請指教。
你只需把它放在一個main
隊列您的代碼之後:
let globalQueue = DispatchQueue.global()
globalQueue.async {
// Your code here
DispatchQueue.main.async {
self.treeview.reloadData()
}
}
我會建議使用DispatchGroup
。通過一個組,您可以創建依賴關係,並在一切完成時收到通知。
// create a group to synchronize our tasks
let group = DispatchGroup()
// The 'enter' method increments the group's task count…
group.enter()
let globalQueue = DispatchQueue.global()
globalQueue.async {
// my lengthy code
group.leave()
}
// closure will be called when the group's task count reaches 0
group.notify(queue: .main) { [weak self] in
self?.tableView.reloadData()
}
是的,treeview是在我的用戶界面。 – techno
其實我需要明確定義自己ie:'self.treeview.reloadData();' – techno
@techno更新 – paper1111