Ich verschiebe meinen Code von regulären GCD zu NSOperationQueue
, weil ich etwas von der Funktionalität brauche. Ein Großteil meines Codes beruht auf dispatch_after, um ordnungsgemäß zu funktionieren. Gibt es eine Möglichkeit, etwas Ähnliches mit einer NSOperation
zu tun?dispatch_after gleichwertig in NSOperationQueue
Dies ist ein Teil meines Codes, der in NSOperation
konvertiert werden muss. Wenn Sie ein Beispiel für die Konvertierung mit diesem Code bereitstellen könnten, wäre das großartig.
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)];
}
});
Dies wird den Betrieb aktiv in der Warteschlange zu halten, und im Falle einer Warteschlange mit einer begrenzten Anzahl von aktiven Betriebs wird, dass der Schlaf anderen in Frage kommenden Operationen halten aus Ausführen. – Bogdan
Vereinbart mit @ Bogdan. Dies ist kein guter Ansatz. Sie sollten die Operationswarteschlangen-Threads niemals blockieren. – Randy