Actualmente estoy programando una aplicación que extrae fotogramas de un clip de película. Lo diseñé para que la extracción se realice en un hilo separado para evitar que la aplicación se congele. El proceso de extracción en sí está tomando muchos recursos, pero funciona bien cuando se usa en el simulador. Sin embargo, hay problemas al construirlo para el iPad. Cuando realizo otra acción (le digo a mi reproductor AV que juegue mientras extraigo fotogramas), el hilo deja de funcionar inesperadamente, y creo que se está matando.El sistema operativo está eliminando el hilo
Supongo que es porque estoy usando muchos recursos, pero no del todo seguro.
Aquí están mis preguntas: 1. ¿Cómo puedo saber si/por qué mi hilo se detiene? 2. Si realmente se debe a un procesamiento excesivo, ¿qué debo hacer? Realmente necesito que esta acción se implemente.
Heres algunas im código utilizando: Para crear el hilo:
[NSThread detachNewThreadSelector:@selector(startReading) toTarget:self withObject:nil];
Voy a publicar cualquier información que necesite, Gracias tanto!
Actualización Estoy usando GCD ahora y rellena los hilos para mí. Sin embargo, el sistema operativo aún mata los hilos.
Sé exactamente cuándo está sucediendo. cuando le digo a mi [AVplayer play]; mata el hilo.
Este problema sólo ocurre en el iPad real y no en el simulador
Si tiene que preguntar, intente utilizar una abstracción de nivel superior en su lugar, como las colas de envío (GCD) o las colas de operaciones (NSOperationQueue).Ver [El alejarse de los hilos] (http://developer.apple.com/library/mac/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyandApplicationDesign/ConcurrencyandApplicationDesign.html#//apple_ref/doc/uid/TP40008091-CH100- SW8) para una discusión extendida, o busque un ejemplo [GCD] (http://stackoverflow.com/questions/7941860/#7941898) o [NSOperationQueue] (http://stackoverflow.com/questions/830218/). Es algo muy útil. – Jano
¿se bloquea tu aplicación? en caso afirmativo, ¿qué dice el informe de fallos? ¿Estás seguro de que AVPlayer es seguro para los hilos? porque si estás llamando [AVplayer play] y accediendo a él al mismo tiempo en un hilo de fondo, ese podría ser el problema. – JeanLuc
¿Está funcionando su hilo de extracción como hilo de fondo? Estoy aprendiendo Objective-C pero, si puede ejecutarlo como un hilo de fondo, puede ayudar a que el SO no lo mate. –