为什么这个 group.wait 总是成功?

Why this group.wait always succeeds?

我正在尝试从 group.wait 获取超时,但这总是成功的。

blueGroup.enter()
for i in 1...1000000 {
    print(i)
}
blueGroup.leave()

let time: DispatchTime = .now() + .seconds(1)
let result = blueGroup.wait(timeout: time)

print("finished \(result)") // always success


let redGroup = DispatchGroup()
redGroup.enter()
for i in 0...300000 {
    print(i / (i + 1))
    if i == 300000 {
        print(i)
        let result = redGroup.wait(timeout: .now() + .seconds(10))
        print(result)  // always timeout
        redGroup.leave()
    }
}

我哪里错了?

谢谢

blueGroup.enter()   // Now the Blue Group will block waiters
for i in 1...1000000 {
   print(i)
}
blueGroup.leave()  // Blue group leaves match enters, so no blocking

let time: DispatchTime = .now() + 0.001
print(time)    
let result = blueGroup.wait(timeout: time) // Nothing blocking, so moving on

print("finished \(result)") // finished success (as expected)

如果您还没有完成小组,请不要离开。