Aplicación de bloques de ciclo largo

Tengo el siguiente ciclo en mi aplicación

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
}

y la rueda del arco iris se muestra durante la ejecución del ciclo. ¿Cómo puedo administrar esa aplicación que aún responde a las acciones de la interfaz de usuario? Tenga en cuenta que NSProgressIndicator se actualizó en diferentes partes del código que no se actualiza (no se muestra el progreso) mientras se ejecuta el ciclo. Sospecho que tiene algo que ver con el despacho, pero estoy bastante "verde" con eso. Agradezco cualquier ayuda. Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta