2012-02-06 14 views
7

¿Qué sucede si un bloque se ejecuta de forma asíncrona en una cola de fondo cuando el usuario sale de la aplicación? ¿Se terminará? ¿Tengo que manejarlo en el –applicationWillTerminate:?¿Qué sucede con un Bloque que se ejecuta en una Cola de Despacho de GCD si la aplicación finaliza?

No estoy hablando de tareas de larga ejecución ... ¿solo me pregunto si existe un peligro inherente en hacer algo que pueda llevar a un estado incoherente de forma asíncrona?

Respuesta

2

Todos los hilos (GCD creados o no) finalizan cuando una aplicación sale, así que sí, el bloque no se ejecutará (nunca) si no lo ha hecho ya. Si hay trabajo que se debe completar antes de que la aplicación pueda salir de manera segura, puede esperar eso en -applicationWillTerminate, pero no es una buena idea configurar las cosas de esa manera ya que el usuario también puede dejar de usar la aplicación y -applicationWillTerminate nunca se ejecutará.

Cuestiones relacionadas