【发布时间】:2018-10-31 05:56:25
【问题描述】:
这更像是一个理论问题。如果我有一个大的 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 之前执行吗?即使循环内的计算本身没有完成处理程序?
谢谢。
【问题讨论】:
-
在再次进入之前,您正在进入和离开群组。这将调用通知您的循环运行的次数。
-
如果是这种情况,有没有办法强制整个for循环在
performOperationsForArray函数执行之前运行? -
这就是普通 for 循环的工作方式。运行正常循环时遇到什么问题?
-
在运行以下操作之前循环没有完成......这就是问题
-
那么您可能正在做的不是您在循环中发布的代码。
标签: swift asynchronous synchronization