我正在做一個關於大中央調度的教程。從本質上講,教師在閉包裏面有一些長時間運行的任務,所以他把所有東西都放在後臺隊列中(代碼太長,不能編寫,沒有提供源代碼)。總之,他有這個格式大中央調度,QOS用戶交互與獲取主隊列
dispatch_async(QOS_CLASS_BACKGROUND, {
//time consuming tasks which should not be on main queue
})
但是封閉在那裏一切都在後臺隊列裏面,有一些代碼更新了用戶界面。我被教導(主要是udacity),所有的UI更新應該在主隊列中。因此
dispatch_async(dispatch_get_main_queue(), ...
雖然教官,而不是使用
dispatch_get_global_queue(QOS_CLASS_USER_INTERACTIVE, 0), {...}
我瞭解到,自從QOS_CLASS_USER_INTERACTIVE是爲當前的任務,因爲這是適當的與用戶界面相關。然而使用vs get_main_queue
有什麼優勢?
也許[這個問題](http://stackoverflow.com/questions/36735946/global-queue-with-qos-class-user-interactive)和[GDC cheat sheet](https://lionhylra.wordpress .com/2015/09/06/gcd-for-swift-cheatsheet /)可以回答你的問題 – Tj3n