按顺序连锁不同的功能[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按顺序连锁不同的功能[关闭]相关的知识,希望对你有一定的参考价值。

我试着将不同的功能进行连锁。只有当每个函数完成后才去下一个函数。

我可以找到不同的方法来做到这一点。例如,我可以找到不同的方法。

我试过了,所有的工作都在两个函数中进行,但是当有几个函数和大量的代码时,它们也变得很复杂。

我正在寻找一个解决方案,可以帮助保持代码的干净和组织,特别是当有几个函数时。

例如,它可以使代码保持正确的顺序,但它需要添加一种方法,只有当每个函数完成后才可以进入下一个函数。

override func viewDidLoad() {
    super.viewDidLoad()
    first()
}
func first () {
    print("first")
    second()
}
func second () {
    print("second")
    third()
}
func third () {
    print("third")
}
答案

你可以通过DispatchQueueGroup来实现。

let queue = DispatchQueue(label: "com.company.app.queue", attributes: .concurrent)
let group = DispatchGroup()

group.enter()
queue.async {
    print("#1 started")
    Thread.sleep(forTimeInterval: 5)
    print("#1 finished")
    group.leave()
}

group.wait()

group.enter()
queue.async {
    print("#2 started")
    Thread.sleep(forTimeInterval: 2)
    print("#2 finished")
    group.leave()
}

group.wait()

queue.async {
    print("#3 finished")
}

它是如何工作的。

  • 简单的创建一个组。
  • 进入组并开始工作#1
  • 继续等待,直到1号完成为止

关于这个问题,为您做一个更详细的解答。

https:/stackoverflow.coma430229568475638。

以上是关于按顺序连锁不同的功能[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

表仅按字母顺序排序,不是数字排序[关闭]

列出嵌套字典的连锁键

为啥我需要按两次后退按钮才能第一次关闭片段?

csharp 在Swashbuckle Swagger中,此片段允许按字母顺序显示操作。

如何在Listview中按字母顺序显示联系人[关闭]