为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Swift 3,Swift 4及更高版本中dispatch_sync

如何在Swift 3,Swift 4及更高版本中dispatch_sync

扬帆大鱼 2019-07-25 16:50:17
如何在Swift 3,Swift 4及更高版本中dispatch_sync,dispatch_async,dispatch_after等?我在Swift 2.x(甚至1.x)项目中有很多代码,如下所示:// Move to a background thread to do some long running workdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {     let image = self.loadOrGenerateAnImage()     // Bounce back to the main thread to update the UI    dispatch_async(dispatch_get_main_queue()) {         self.imageView.image = image    }}或者像这样的东西来延迟执行:dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) {     print("test")}或者Grand Central Dispatch API的各种其他用途......现在我已经在Swift 3的Xcode 8(beta)中打开了我的项目,我得到了各种错误。其中一些提供修复我的代码,但并非所有修复产生工作代码。我该怎么办?
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

在Xcode 8 beta 4不起作用......

使用:

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
    print("Are we there yet?")}

对于异步两种方式:

DispatchQueue.main.async {
    print("Async1")}DispatchQueue.main.async( execute: {
    print("Async2")})


查看完整回答
反对 回复 2019-07-25
  • 3 回答
  • 0 关注
  • 1258 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信