Metodi di chiamata da dentro i metodi richiamati dal thread principale
-
11-12-2019 - |
Domanda
Ho effettuato una chiamata a un metodo di classe dall'AppDelegate come SO:
RankingAndSMProcess *process = [RankingAndSMProcess alloc];
[process performSelectorInBackground:@selector(DoRankingAndSocialMediaProcessing) withObject:nil];
[process release];
.
Questo metodo chiama altri metodi:
@try {
[self GoForRankingProcess];
[self updateItemsForPeerindex];
[self updateItemsForKloat];
[self updateItemsForKred];
}
@catch (NSException *exception) {
NSLog(@"An Error has been occured:%@", exception);
}
@finally {
[items release];
[profile release];
}
.
Tutti i metodi chiamati dall'interno del metodo DanrankingAndsocialMediaMessAnCessing in RankingandSmProcess devono essere chiamati allo stesso modo del DorrankingAndsocialMediaMessing sul filo del fondo?O c'è un altro problema potenziale qui?
Attualmente non penso che nessuno dei metodi di elaborazione venga spaventato poiché non vengono raccolti nuovi dati.
Prima di aggiungere modifica della chiamata da eseguire in background tutti i metodi e l'intero processo funzionava come previsto.
Soluzione
Creare una nsoperazione e aggiungi questa operazione a NsopationalQueue. Ciò creerà un nuovo thread parallelo al thread principale e eseguirà anche il tuo metodo.
Ecco alcuni link utili:
http://www.icodeblog.com/tag/nsopation/
.http://www.cimgf.COM / 2008 / 02/16 / Cocoa-tutorial-NSOPERATION-E-NSOPERATIONALQUE /
Spero che questo ti aiuterà.
Divertiti la codifica :)
Altri suggerimenti
Cosa stanno facendo tutti quelli altri metodi?Se è una richiesta di rete, ad esempio un ciclo di run potrebbe essere necessario affinché il thread di sfondo sia in grado di effettuare effettivamente in grado di eseguire l'attività.