在swift脚本中等待异步调用

前端之家收集整理的这篇文章主要介绍了在swift脚本中等待异步调用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个 swift脚本,在终端中运行,向后台线程调度几个操作.在完成所有调度之后,没有任何额外的努力,代码到达文件的末尾并退出,也杀死我的后台操作.在我的后台操作完成之前,保持swift脚本活着的最佳方法是什么?

我提出的最好的是以下,但我不相信这是最好的方式,甚至是正确的.

var semaphores = [dispatch_semaphore_t]()
while x {
  var semaphore = dispatch_semaphore_create(0)
  semaphores.append(semaphore)
  dispatch_background {
    //do lengthy operation
    dispatch_semaphore_signal(semaphore)
  }
}

for semaphore in semaphores {
  dispatch_semaphore_wait(semaphore,DISPATCH_TIME_FOREVER)
}
感谢与之相关的Aaron Brager
Multiple workers in Swift Command Line Tool,

这是我用来找到答案的方法,使用dispatch_groups来解决问题.

原文链接:https://www.f2er.com/swift/319100.html

猜你在找的Swift相关文章