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個の番号を印刷することができ、新しい非同期ジョブを実行していない、しかし、print文は低迷方法でものを出力します。私はdispatch_after
の中でもっと複雑なロジックを持っていました。処理が非常に遅かったことに気づいたので、私はこのテストを書いたのです。dispatch_get_main_queue()がスムーズに
バッファサイズなどのプロパティは設定できますか? dispatch_get_main_queue()
は、より多くの非同期タスクでうまく動作しないようです。
ありがとうございます!