gpt4 book ai didi

Swift - 在没有完成处理程序的情况下同步执行大型 for 循环

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:59 25 4
gpt4 key购买 nike

这更像是一个理论问题。如果我有一个大的 for 循环,比如

   var array = []
let myGroup = DispatchGroup()
for i in 0..<1000000000 {
myGroup.enter()
let x = i + 1
let y = (x/2 * 15832) ^ 15
array.append(x)
array.append(y)
myGroup.leave()
}
myGroup.notify(queue: .main) {
performOperationForArray(array:array)
}

这会确保 for 循环中的所有内容都在 performOperationForArray 之前执行吗?即使循环内的计算本身没有完成处理程序?

谢谢。

最佳答案

不需要调度组。只需在后台运行循环即可。循环完成后,根据需要在主队列上调用 performOperationForArray

DispatchQueue.global().async {
var array = []
for i in 0..<1000000000 {
let x = i + 1
let y = (x/2 * 15832) ^ 15
array.append(x)
array.append(y)
}

DispatchQueue.main.async {
performOperationForArray(array:array)
}
}

当然,这是假设您的真实代码没有在循环内进行任何异步处理。

关于Swift - 在没有完成处理程序的情况下同步执行大型 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53077139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com