Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用DispatchGroup时如何设置超时?_Swift - Fatal编程技术网

Swift 使用DispatchGroup时如何设置超时?

Swift 使用DispatchGroup时如何设置超时?,swift,Swift,我们可以在swift中使用DispatchGroup向组中添加许多任务。该组将等待所有任务完成后再继续执行下一个代码 let dg=DispatchGroup() dg.notify(队列:.global()){ //完成后在此处运行代码 } 如果任务花费的时间太长而无法完成,是否有方法为此dispatchGroup添加超时 [编辑] 我知道DispatchGroup.wait(超时:)添加了一个超时。但这让它同步等待。是否有一种方法可以使用notify方法实现异步,但仍有超时?如果希望Dis

我们可以在swift中使用DispatchGroup向组中添加许多任务。该组将等待所有任务完成后再继续执行下一个代码

let dg=DispatchGroup()
dg.notify(队列:.global()){
//完成后在此处运行代码
}
如果任务花费的时间太长而无法完成,是否有方法为此dispatchGroup添加超时

[编辑]


我知道
DispatchGroup.wait(超时:)
添加了一个超时。但这让它同步等待。是否有一种方法可以使用
notify
方法实现异步,但仍有超时?

如果希望
DispatchGroup
异步超时,请尝试:

var dg: DispatchGroup? = DispatchGroup()
DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
    self.dg = nil // after time out group is removed asynchronously
}
dg?.notify(queue: .global()) {
    // run code here on completion
}

如果希望
DispatchGroup
异步超时,请尝试:

var dg: DispatchGroup? = DispatchGroup()
DispatchQueue.main.asyncAfter(deadline: .now() + 10) {
    self.dg = nil // after time out group is removed asynchronously
}
dg?.notify(queue: .global()) {
    // run code here on completion
}

创造性的谢谢我以为会有一个超时参数,就像在同步版本中一样。恭喜你,不客气。我使用了
DispatchGroup.wait(超时:)
。但是,我的要求也让我改用这种方法。快乐编码:)创意。谢谢我以为会有一个超时参数,就像在同步版本中一样。恭喜你,不客气。我使用了
DispatchGroup.wait(超时:)
。但是,我的要求也让我改用这种方法。快乐编码:)