ios - asyncAfter 似乎没有时间延迟 - Swift

标签 ios swift grand-central-dispatch dispatch-async

最终,我很快就在 swift 中使用了 asyncAfter 特性,它确实有一些延迟,而且看起来与普通代码不同。

异步代码:

DispatchQueue.main.asyncAfter(deadline: .now() + 0.0 , execute: {
    self.updateUI()
})

普通代码:

self.updateUI()

执行选择器也有类似的问题。

self.performSelector("onFlip", withObject: nil, afterDelay: 0)

这个延迟是因为创建新线程造成的吗?

最佳答案

这是预期的。

DispatchQueue.main.asyncAfter(deadline: .now() + 0.0 , execute: {
    self.updateUI()
})

本质上与

相同
DispatchQueue.main.async {
    self.updateUI()
}

由于您将代码分派(dispatch)到主线程异步,它也不会立即执行。由于异步调度,闭包内的代码不会立即执行,只会在 main 的下一个运行循环中执行,这可能会导致可测量的延迟。

关于ios - asyncAfter 似乎没有时间延迟 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50642582/

相关文章:

swift - 是否需要将变量 'possibleIntegerValue' 设置为 'optional Int(Int?)',或者将 'possibleIntegerValue' 设置为类型 'Int' 是否可以?

swift - 在 Swift 中创建线程安全读取时,为什么在并发队列之外创建一个变量?

ios - PFArrayResultBlock(parse) 在转换为 swift 2.0 时导致错误

ios - 陷入 JSONModel 和 NSMutableArray 困境

ios - 使用 UIAlertController 操作以编程方式链接到嵌入式 UIViewController

objective-c - 密集使用 GCD 的命名约定

ios - 是否可以从 Objective-c 中的服务器下载完整目录

ios - 二进制图像 POST - iOS

ios - 尝试将 #define DEBUG_MODE 添加到我的 prefix.pch 文件时出现编译器警告

ios - PFQuery 完成后开始一些事情