ayj*_*joy 2 multithreading ios swift ios-multithreading
我有一个在用户点击按钮时设置的本地通知。我想将此发送到后台线程,然后更新UI。这是一种安全的方法吗?
DispatchQueue.global(qos: .background).async { // sends registration to background queue
center.add(request, withCompletionHandler: {(error) in
if let error = error {
print(error)
}
})
DispatchQueue.main.async {
try! self.realm.write {
self.realm.add(task)
self.updateData()
}
}
}
Run Code Online (Sandbox Code Playgroud)
您应该在完成处理程序内移动主线程块。否则,您的代码看起来不错。
DispatchQueue.global(qos: .background).async { // sends registration to background queue
center.add(request, withCompletionHandler: {(error) in
if let error = error {
print(error)
} else {
DispatchQueue.main.async {
try! self.realm.write {
self.realm.add(task)
self.updateData()
}
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |