Aplicação de blocos de ciclo longo

Eu tenho o seguinte ciclo no meu aplicativo

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
}

e a roda do arco-íris aparece durante a execução do ciclo. Como posso gerenciar esse aplicativo ainda está respondendo às ações da interface do usuário? Nota: O NSProgressIndicator é atualizado em diferentes partes do código que não estão sendo atualizadas (o progresso não é mostrado) enquanto o ciclo está em execução. Suspeito que isso tenha algo a ver com a dissipação, mas sou bastante "verde" com isso. Agradeço qualquer ajuda. Obrigado.

questionAnswers(1)

yourAnswerToTheQuestion