gpt4 book ai didi

ios - 信号量 : DISPATCH_TIME_NOW vs DISPATCH_TIME_FOREVER

转载 作者:行者123 更新时间:2023-11-28 18:22:22 25 4
gpt4 key购买 nike

有人可以给我提供一个示例,说明在使用信号量时何时使用 DISPATCH_TIME_NOW 与 DISPATCH_TIME_FOREVER 吗?

2 之间有什么区别,在什么情况下我会使用一个而不是另一个?

根据文档 DISPATCH_TIME_NOW 表示立即超时。 DISPATCH_TIME_FOREVER 表示超时无限。

为什么你会想要前者,即:立即超时。

最佳答案

您可以立即超时以检查 block 是否已完成计算。同样,您可以一直等到一个 block 完成,然后再继续执行另一个 block 。

检查一组是否完成的示例如下所示。

if (dispatch_group_wait(myDispatchGroup, DISPATCH_TIME_NOW) == 0) {
// myDispatchGroup is finished...
} else {
// myDispatchGroup is _not_ finished...
}

在永远等待时检查一个组是否完成没有意义,因为该函数将永远等待。相反,我们使用该函数来同步阻塞(在暂停或等待中阻塞,而不是在 GCD 阻塞中)直到组完成。

// Enqueue myDispatchGroup

// Wait for it to finish
dispatch_group_wait(myDispatchGroup, DISPATCH_TIME_FOREVER);

// Do other work that depends on myDispatchGroup being completed

关于ios - 信号量 : DISPATCH_TIME_NOW vs DISPATCH_TIME_FOREVER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17958459/

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