8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 swift 脚本中等待异步调用

roee 1月前

36 0

我正在编写一个在终端中运行的 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)
}
帖子版权声明 1、本帖标题:在 swift 脚本中等待异步调用
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由roee在本站《swift》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 除了使用 之外 dispatch_groups ,您还可以执行以下操作:

    yourAsyncTask(completion: {
        exit(0)
    })
    
    RunLoop.main.run()
    

    一些资源:

    • RunLoop 文档
    • 来自 swift-sh 项目的示例
    • 退出代码含义
返回
作者最近主题: