Swift activity 指标仅在某些时候出现

Swift activity indicator only appears some of the time

该功能需要几秒钟才能完成,大约一半的时间,当我按下按钮时,activity 指示符会出现在屏幕上,直到功能完成,就像它应该的那样。另一半时间,屏幕在执行该功能时会冻结,activity 指示器永远不会出现。

    @IBAction func buttonAction(_ sender: Any) {
        activityIndicator.startAnimating()
            DispatchQueue.global(qos: .default).async {
                DispatchQueue.main.async {
                    self.function()
                    self.activityIndicator.stopAnimating()
                }
            }
    }

我认为函数不应该在主队列中执行:

   @IBAction func buttonAction(_ sender: Any) {
    activityIndicator.startAnimating()
        DispatchQueue.global(qos: .default).async {
            self.function()
            DispatchQueue.main.async {
              self.activityIndicator.stopAnimating()
            }
        }
}