Применение блоков длительного цикла

У меня есть следующий цикл в моем приложении

var maxIterations: Int = 0

func calculatePoint(cn: Complex) -> Int {

    let threshold: Double = 2
    var z: Complex = .init(re: 0, im: 0)
    var z2: Complex = .init(re: 0, im: 0)
    var iteration: Int = 0

    repeat {
        z2 = self.pow2ForComplex(cn: z)
        z.re = z2.re + cn.re
        z.im = z2.im + cn.im
        iteration += 1
    } while self.absForComplex(cn: z) <= threshold && iteration < self.maxIterations

    return iteration
}

и радужное колесо показывает во время выполнения цикла. Как я могу управлять тем, что приложение все еще реагирует на действия пользовательского интерфейса? Примечание. У меня NSProgressIndicator обновлен в другой части кода, которая не обновляется (прогресс не отображается) во время выполнения цикла. У меня есть подозрение, что это как-то связано с диспетчеризацией, но я вполне "зелен" с этим. Я ценю любую помощь. Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос