Al trabajar con algún código, me encuentro con ejecutar bucles, que soy nuevo, dentro de NSOperation
s.Usando NSThread dormir en una NSOperation
Los NSOperation
s están ocupados descargando datos, y mientras están ocupados, hay código para esperar a que se completen las descargas, en forma de NSRunLoop
sy thread sleeping.
este código en particular es de interés para mí:
while (aCertainConditionIsTrue && [self isCancelled]==NO) {
if(![[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:1.0]]){
[NSThread sleepForTimeInterval:1.0];
}
}
He leído sobre los bucles de estreno y runMode:beforeDate:
esperará una fuente de entrada o un tiempo de espera. Aunque no soy 100%, lo que cuenta como fuente de entrada.
En la primera ejecución de esto siempre devuelve NO e ingresa al sleepForTimeInterval:
. ¿Es esto malo?
En una clase de utilidad particular, está alcanzando el sleepForTimeInterval:
mucho, una vez para cada hilo, lo que perjudica significativamente el rendimiento.
¿Alguna mejor solución para esto o consejo?