Sto spostando il mio codice dal normale GCD a NSOperationQueue
perché ho bisogno di alcune delle funzionalità. Gran parte del mio codice si basa su dispatch_after per funzionare correttamente. C'è un modo per fare qualcosa di simile con uno NSOperation
?dispatch_after equivalent in NSOperationQueue
Questo è parte del mio codice che deve essere convertito in NSOperation
. Se potessi fornire un esempio di conversione usando questo codice, sarebbe fantastico.
dispatch_queue_t queue = dispatch_queue_create("com.cue.MainFade", NULL);
dispatch_time_t mainPopTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(timeRun * NSEC_PER_SEC));
dispatch_after(mainPopTime, queue, ^(void){
if(dFade !=nil){
double incriment = ([dFade volume]/[self fadeOut])/10; //incriment per .1 seconds.
[self doDelayFadeOut:incriment with:dFade on:dispatch_queue_create("com.cue.MainFade", 0)];
}
});
Ciò manterrà l'operazione attiva nella coda, e in caso di una coda con un numero limitato di operazioni attive, che il sonno terrà altre operazioni ammissibili da esecuzione. – Bogdan
Concordato con @Bogdan. Questo non è un buon approccio. Non si dovrebbe mai bloccare i thread della coda di operazioni. – Randy