我能听听你对批准方法的建议吗?
我有四个进程需要按顺序运行:
calculateProcess1()
calculateProcess2()
calculateProcess3()
calculateProcess4()
它们使用调度队列计算数据并更新进度条(循环)和其他屏幕文本,以使UI更新。
照原样跑,看他们都同时开火了(真是个惊喜!).
如何使顶级调用按顺序(如上所述)运行,以及是否需要在更新文本的过程中更改DispatchQueues,例如:
DispatchQueue.main.sync {
let progressPercentage = (day*100/365)
self.progressLabel.text = String(Int(progressPercentage))+"%"
}
初始化进程(calculateProcess1-4())需要从main运行。这应该是在ViewDidLoad中,按钮操作还是最安全的方法?
最佳答案
一种方法是使用Operation
和OperationQueue
。在maxConcurrentOperationCount: Int
上将1
设置为OperationQueue
将强制依次执行操作。
(以前称为NSOperation
和NSOperationQueue
)
这篇博文可能会有帮助:https://nshipster.com/nsoperation/
当然还有很棒的WWDC15会议:Advanced NSOperations