我有一系列必须按顺序执行的任务,因此它们由 DispatchQueue 控制。为了通知用户他们正在离开,我启动了活动图标。但是,如果关闭主线程,我该如何停止?
从逻辑上讲,我想要实现的是:
override func viewDidLoad() {
super.viewDidLoad()
self.activityIcon.startAnimating()
DispatchQueue.main.async {
self.bigTask1()
}
DispatchQueue.main.async {
self.bigTask2()
self.activityIcon.stopAnimating()
}
}
这显然会产生运行时错误:“UIActivityIndicatorView.stopAnimating()
必须仅从主线程使用”。
将stopAnimating()
它放在主队列中会如此快速地打开和关闭它,没有人会看到它。
什么是批准的方式调用这样的功能退出main
队列?
非常感谢。Ps 我已经阅读了关于 SO 的类似问题的答案,但不太明白。