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
它工作的感謝! –