gpt4 book ai didi

ios - 在 Swift CLI 中使用 GCD

转载 作者:行者123 更新时间:2023-11-29 12:06:26 25 4
gpt4 key购买 nike

所以我尝试在 CLI 中使用 GCD。为了测试它,我写了一些这样的代码:

import Foundation

var i = 0

print("a: ",i)

dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0)) {

for n in 1..<10{
i++
}

print("c: ",i)

dispatch_async(dispatch_get_main_queue()){
print("d: ",i)
}
}

print("b: ",i)

sleep(5)
print("e: ",i)

输出是: 一个:0 乙:0 c: 9 电子:9

几秒钟后打印最后一行。我想知道的是 d 发生了什么?我放在那个 block 中的任何东西似乎都没有执行。当我在 iOS 中使用它时,它工作正常,而不是在 CLI 中。

最佳答案

CLI 缺乏应用程序的持久性。它在 d 有机会被打印之前结束(终止)。

正如 @user3441734 正确指出的那样,您可以在 CLI 中通过调用 dispatch_main() 作为退出前的最后一件事来解决这个问题。此调用有效地迫使我们立即进入主队列,并在退出之前拉出主队列 block 并执行它。

关于ios - 在 Swift CLI 中使用 GCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828991/

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