2010-01-26 13 views
9

Sto cercando un modo per riordinare un NSOperationQueue.Riordina NSOperazioneQueue

Potrei cancellare tutte le operazioni e rimetterle in ordine usando l'ordine che desidero, ma speravo in qualcosa di un po 'più pulito. qualche idea?

risposta

21

La differenza principale tra NSOperationQueue e le code GCD sottostanti è che le dipendenze di supporto di NSOperation s tra le operazioni. NSOperationQueue non pianificherà un'operazione finché tutte le sue dipendenze non sono state completate. Tra le operazioni disponibili, l'operazione con priorità più alta viene scelta per essere eseguita successivamente.

Poiché la coda di operazioni può eseguire più operazioni contemporaneamente (in base a maxConcurrentOperations), non c'è un senso preciso dell'ordine in coda. Sarebbe molto meglio usare l'API delle dipendenze o modificare le priorità delle operazioni.

Credo che sia possibile modificare dipendenze e priorità dopo aver aggiunto un'operazione alla coda.

+0

Priorità, sì. Questo mi porterà abbastanza vicino. Grazie! – mousebird

6

Non è possibile riordinare le operazioni in una coda. Se è necessario esprimere quella operazione deve venire dopo l'altro, utilizzare l'API delle dipendenze per farlo.

Vedere la documentazione NSOperationQueue per ulteriori informazioni. I primi due paragrafi della panoramica discutono delle dipendenze.

Problemi correlati