ios - 如何在时间后停止 DispatchGroup? iOS

标签 ios swift timer swift3 grand-central-dispatch

我正在使用 DispatchGroup,我用它来执行来自两个不同服务器的两个请求。当响应来自两个服务器时,DispatchGroup 被调用notify(),问题是一个服务器的响应可能不来(发生过一次)DispatchGroup 一段时间后通知自己?或者如何停止 DispatchGroup?我做了一个例子,但我认为这不是我需要的。

Timer.scheduledTimer(withTimeInterval: 7.5, repeats: false) { [weak self] (timer) in
        guard let _self = self else { return }
        DispatchQueue.main.async {
            if _self.leaveDispatchGroupDigit == 0 {
                _self.requestGroup.leave()
                _self.requestGroup.leave()
            }
            if _self.leaveDispatchGroupDigit == 1 {
                _self.requestGroup.leave()
            }
        }
    }

最佳答案

在这种情况下,为请求创建超时是最干净的解决方案:)

关于ios - 如何在时间后停止 DispatchGroup? iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43083255/

相关文章:

ios - 我可以将 IBOutletCollection 与 WatchKit 一起使用吗?

ios - 从详细 View 快速访问父单元格

ios - 无法在 Swift 中将变量传递给 prepareForSegue?

ios - Swift3 - '[String : AnyObject]' 不可转换为 '[HTTPCookiePropertyKey : Any]'

Java并发和循环任务执行

iphone - 未调用 glkView drawInRect

swift - 在协议(protocol)扩展中访问协议(protocol)的计算属性

java - 想要在服务器上为每个客户端启动一个线程

c# - 在特定日期和时间使用计时器触发事件

ios - GCDAsyncSocket readDataWithTimeout 和 didReadData 正在截断大于 1460 字节(1 个数据包)的传入数据字符串