未调用DispatchQueue main

鲁道夫·安东尼奥

我有一个异步任务o执行计算和动画,动画开始时,队列暂停,动画结束时,恢复队列。但是由于某种原因,从未调用过DispatchQueue.main.sync。

self.someQueue = DispatchQueue(label: "Animation", qos: .background, attributes: DispatchQueue.Attributes.concurrent)
    for index in stride(from: volumeObjects.count, to: -1, by: -1) {
        mainAsyncQueue.sync{
            self.dynamicViewModel.currentPercentile = Float(index)/Float(volumeObjects.count)
            self.currentObjectIndex = index
            print(index)

            DispatchQueue.main.sync {
                UIView.animate(withDuration: 1, animations: {
                    self.updateViewModelDynamicViewModel()
                }, completion: { (finished) in
                    self.someQueue.resume()
                })
            }
            self.someQueue.suspend()
        }
    }

这只是很小的计算,我将用它来解决比这更复杂的任务

卢佛朗哥

我假设这段代码在主线程中。

如果是这样,则您已同步到后台线程,并从那里尝试同步回DispatchQueue.main但是该队列正在等待后台队列返回,然后才能执行任何操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章