¿Qué es Main Actor?

MainActor es un singleton que ejecuta código en el hilo principal. En términos más completos, es un actor cuyo executor ejecuta código en el hilo principal, también conocido como main thread o UI thread.

Podemos usarlo de dos formas:

  • Llamando el método run y pasando nuestro código en un closure:
await MainActor.run {
await execute()
}
  • La segunda forma de usar MainActor es anotando nuestro código utilizando @MainActor:
@MainActor
func execute() async {
//....
}

Otras formas de usar @MainActor

Esto asegurará que nuestro código se ejecute en el hilo principal. También podemos utilizar esta notación en clases y task closures.

De la siguiente forma indicamos que una clase completa ejecutará sus operaciones en el hilo principal:

@MainActor
class myClass {
// Aquí el código..
}

Si queremos que un método en específico no se ejecute en el hilo principal, podemos hacerlo utilizando el modificador nonisolated:

@MainActor
class myClass {
func run() { ... }
nonisolated func stop() { ... }
}

En este caso run() se ejecutará en el hilo principal, sin embargo, stop() no.

Para indicar que un task closure ejecutará sus operaciones en el hilo principal, hacemos lo siguiente:

Task { @MainActor in
// Aquí el código..
}

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn