Estoy trabajando en una pequeña aplicación escrita en Objectivo-c con la ayuda de la estructura de cacao y estoy teniendo un problema de subprocesamiento múltiple. Realmente agradecería si alguien pudiera ayudarme con alguna orientación sobre cómo terminar un hilo secundario (trabajador) del hilo principal?terminando un hilo secundario del hilo principal (cacao)
- (IBAction)startWorking:(id)sender {
[NSThread detachNewThreadSelector:@selector(threadMain:) toTarget:self withObject:nil];
}
- (void)threadMain
{
// do a lot of boring, time consuming I/O here..
}
- (IBAction)stop:(id)sender {
// what now?
}
que he encontrado algo en apple's docs pero lo que falta en este ejemplo es la parte donde la fuente de entrada runloop cambia el valor exitNow.
Además, no usaré muchos subprocesos en mi aplicación, así que preferiría una solución simple (con menos sobrecarga) en lugar de una más compleja que sea capaz de administrar muchos subprocesos fácilmente, pero con más sobrecarga generada (ej. el uso de bloqueos quizá (?) en lugar de runloops)
Gracias de antemano
Funciona muy bien! ¡Gracias! Tengo un bucle en el hilo, por lo que su solución se ajusta como un guante sin ningún código adicional :) – andi
Puede hacer que el intento del bucle while del threadMain sea más claro haciendo (! [[NSThread currentThread] isCancelled]) en su lugar de while (1) y poner profundamente el código isCancelled en el código del bucle. –
@Barry Wark Buen punto. Supongo que esperaba que hubiera otra condición (por ejemplo, ¡hecho!) En ese ciclo. –