UIApplication.delegate debe usarse solo desde el hilo principal [duplicado]

Esta pregunta ya tiene una respuesta aquí:

- [UIApplication delegate] debe llamarse solo desde el hilo principal 2 respuestas

Tengo el siguiente código en mi delegado de aplicaciones como acceso directo para trabajar con CoreData en mis otros viewControllers:

let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext

Sin embargo, ahora recibo el mensaje de error:

"La API de UI llamada desde el subproceso en segundo plano" y "UIApplication.delegate deben usarse solo desde el subproceso principal".

Estoy trabajando con CoreData mientras mi aplicación está en segundo plano, pero esta es la primera vez que veo este mensaje de error. ¿Alguien sabe lo que está pasando aquí?

Actualización: intenté mover esto dentro de la clase appDelegate, y usando el siguiente código:

let dispatch = DispatchQueue.main.async {
    let ad = UIApplication.shared.delegate as! AppDelegate
    let context = ad.persistentContainer.viewContext
}

Ahora, ya no puedo acceder a las variables de contexto y anuncio fuera deAppDelegate. ¿Se me escapa algo?