let dispatchGroup = dispatch_group_create()
let now = DISPATCH_TIME_NOW
for i in 0..<1000 {
dispatch_group_enter(dispatchGroup)
// Do some async tasks
let delay = dispatch_time(now, Int64(Double(i) * 0.1 * Double(NSEC_PER_SEC)))
dispatch_after(delay, dispatch_get_main_queue(), {
print(i)
dispatch_group_leave(dispatchGroup)
})
}
print語句可以順利地打印第15-20號,但是,當i
去越大,打印語句打印的東西以一種緩慢的方式。我在dispatch_after
裏面有更復雜的邏輯,我注意到處理非常緩慢,這就是我編寫這個測試的原因。dispatch_get_main_queue()不執行新的異步工作順利
是否有可以配置的緩衝區大小或其他屬性?看起來dispatch_get_main_queue()
不適用於更多數量的異步任務。
在此先感謝!