gpt4 book ai didi

macos - 如何减慢 GCD 并发队列的任务?

转载 作者:行者123 更新时间:2023-12-02 00:54:31 24 4
gpt4 key购买 nike

出于性能调试目的,每当由 GCD 并发队列操作的后台任务完成其中一项任务时,我需要观察我的 UI 更新的进度。

如果没有人为的延迟,就很难跟上和 react 正在发生的事情。

每个任务可能需要 10 毫秒。我喜欢它花一秒钟。

我尝试通过向其添加 sleep(1); 来减慢队列的任务,但这将允许其他等待任务运行。

我需要的是每个任务确实一直占据其队列,直到额外的一秒结束。

如何在不重新组织整个排队代码的情况下做到这一点?毕竟,这仅用于调试,我只想插入带有条件编译的代码,而不是最终使用不同的调试和非调试构建代码。

最佳答案

您可以旋转一段时间,例如:

func spin(for interval: CFTimeInterval) {
let start = CACurrentMediaTime()
while (CACurrentMediaTime() - start) < interval { }
}

因此,要让一个线程保持忙碌 1 秒,它将是:

spin(for: 1)

您永远不会在生产应用中执行此操作,但它可能有助于您进行诊断。

关于macos - 如何减慢 GCD 并发队列的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435407/

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