我能听听你对批准方法的建议吗?
我有四个进程需要按顺序运行:

calculateProcess1()
calculateProcess2()
calculateProcess3()
calculateProcess4()

它们使用调度队列计算数据并更新进度条(循环)和其他屏幕文本,以使UI更新。
照原样跑,看他们都同时开火了(真是个惊喜!).
如何使顶级调用按顺序(如上所述)运行,以及是否需要在更新文本的过程中更改DispatchQueues,例如:
DispatchQueue.main.sync {
     let progressPercentage = (day*100/365)
     self.progressLabel.text = String(Int(progressPercentage))+"%"
}

初始化进程(calculateProcess1-4())需要从main运行。这应该是在ViewDidLoad中,按钮操作还是最安全的方法?

最佳答案

一种方法是使用OperationOperationQueue。在maxConcurrentOperationCount: Int上将1设置为OperationQueue将强制依次执行操作。
(以前称为NSOperationNSOperationQueue
这篇博文可能会有帮助:https://nshipster.com/nsoperation/
当然还有很棒的WWDC15会议:Advanced NSOperations

10-06 01:19