J'essaie de surveiller un thread que je définis en cours d'exécution en arrière-plan. J'ai besoin d'être alerté quand l'exécution est terminée.Surveillance des threads d'arrière-plan
- (IBAction) btnGreaterTen_clicked :(id)sender{
self.searchDistance = [NSNumber numberWithDouble : 10];
CGRect frame = CGRectMake (120.0, 185.0, 80, 80);
activity = [[UIActivityIndicatorView alloc] initWithFrame: frame];
activity.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
[navigationUpdateFromDetail.window addSubview: activity];
[activity startAnimating];
thread = [[NSThread alloc] init];
[thread start];
[self performSelectorInBackground: @selector (getSetDisplay) withObject:nil];
if(thread.isFinished == YES){
[activity stopAnimating];
}
}
Le code ci-dessus ce que j'ai après avoir essayé différentes configurations afin d'atteindre le résultat final. J'essaye d'animer le UIActivityIndicator pendant que j'utilise cette méthode "getSetDisplay" pour récupérer des informations sur le net.
La fonction est bonne, mais l'indicateur d'activité ne s'affichait pas. On m'a dit que j'avais besoin de lancer le processus sur un fil de fond et l'animation sur le fil principal. Mon problème maintenant est comment puis-je surveiller quand ce processus est fait pour arrêter l'indicateur d'activité. merci d'avance
J'ai essayé cette méthode, mais l'UIActivity de ce que je comprends doit tourner sur le thread principal, et le système d'exploitation le met sur ce fil. C'est pourquoi je cours ma méthode sur le fond. J'ai juste besoin de savoir comment le surveiller – Makinitez21
Envisager de mettre quelque chose comme ça à la fin de votre méthode 'getSetDisplay': ' [activity performSelectorOnMainThread: @selector (stopAnimating) avecObject: nil waitUntilDone: NO] ' – Mike
Votre fil = [ [NSThread alloc] init]; ne semble rien faire du tout. Vous générez un thread ici, puis un autre avec l'appel performSelectorInBackground. Les commentaires ci-dessus sont probablement la façon dont j'irais ... Ou vous pourriez utiliser NSNotifications pour un message entre l'op de fond et l'op de premier plan. – Hunter