2
ループ内の特定のスレッドを遅らせようとしていますが、私が望む動作が得られません。私は1B
が一度だけ実行されるようにしたいと考えています。1A
は完了しましたが、2A
は別のスレッドで並行して実行されます。私の実装は1A
、次に1B
、そして2A
の代わりに実行されます。どのように私はこれを修正することができますどのような考え?問題をループ内の遅延と同期させる
実装
override func viewDidLoad() {
super.viewDidLoad()
// 1
DispatchQueue.main.async {
self.loopManager(printable: "1A") // 1A
self.loopManager(printable: "1B") // 1B
}
// 2
DispatchQueue.main.async {
self.loopManager(printable: "2A") // 2A
}
}
func loopManager(printable: String) {
for i in 0...3 {
doABC(printable: String(i) + ", " + printable)
sleep(1)
}
}
func doABC(printable: String) {
print(printable)
}
ログ
0, 1A
1, 1A
2, 1A
3, 1A
0, 1B
1, 1B
2, 1B
3, 1B
0, 2A
1, 2A
2, 2A
3, 2A
それは感謝を作品! –