gpt4 book ai didi

ios - swift :DispatchQueue.global

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

我正在编写一个始终使用 dispatchQueue 来帮助我处理从其他设备收到的数据包的应用程序。

因此,在我的代码中,取决于收到的数据包,它会触发如下代码:

if (// condition fulfilled) {

let queue = DispatchQueue.global(qos: DispatchQoS.QoSClass.default)
queue.async { () -> Void in
self.handlePacket(packet: packet) {
DispatchQueue.main.async {
// do something.
}
}
}

然后我发现当执行到有同一个变量“queue”的一部分代码时,另一部分代码不用调用就可以被触发。并且应用程序在 queue.async { () -> Void in

行崩溃

我不能为队列使用相同的名称吗?或者我的代码实际上弄乱了那些队列?

请指教。

最佳答案

首先,你应该问问自己,你到底想达到什么目的? handlePacket(_) 是否太重而无法在当前队列中处理?

并发很难,你应该尽量避免它,直到你了解并发和队列在 iOS 中是如何工作的。

关于ios - swift :DispatchQueue.global,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42628113/

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