【发布时间】:2018-03-20 04:02:42
【问题描述】:
我正在使用DispatchGroup 执行任务,但在任务完成之前调用了group.notify。
我的代码:
let group = DispatchGroup()
let queueImage = DispatchQueue(label: "com.image")
let queueVideo = DispatchQueue(label: "com.video")
queueImage.async(group: group) {
sleep(2)
print("image")
}
queueVideo.async(group: group) {
sleep(3)
print("video")
}
group.notify(queue: .main) {
print("all finished.")
}
日志:
all finish.
image
video
【问题讨论】:
-
在 Xcode 9.2 操场上运行代码会产生预期的输出,而不是问题中显示的输出。
-
我在一个使用 Xcode 9.2 构建的实际应用程序中对其进行了测试,它在那里也能正常工作。
-
确保您已导入 Playground 支持 @rmaddy 说它没有任何问题
-
当我在 repl 中运行原始代码时,它确实可以工作......除了它实际上没有打印任何东西。请注意
sleep的 正在 工作 -
实际上.. 现在它的行为正好相反:正在打印但立即 即
sleep被忽略。这很奇怪。