Esiste un modo sicuro per modificare la priorità di una NSOperazione già accodata in un NSOperationQueue? Se l'operazione non è ancora iniziata, non ci sono problemi, ma se è già in esecuzione ottengo un NSInvalidArgumentException.Modo sicuro per modificare la priorità di una NSOperazione
risposta
Non si deve alterare una NSOperation una volta che è stato accodato. Secondo Threading Programming Guide di Apple:
Importante: non si dovrebbe mai modificare un oggetto operazione dopo che è stato aggiunto a una coda. Durante l'attesa in una coda , l'operazione potrebbe essere eseguita a in qualsiasi momento. Cambiare il suo stato mentre è in esecuzione potrebbe avere effetti negativi . È possibile utilizzare i metodi di l'oggetto operazione per determinare se l'operazione è , in attesa di esecuzione o già completata.
Link aggiornato: http://developer.apple.com/library/mac/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091 -CH101-SW38 –
@MichaelBaltaks - Grazie, aggiornato. –
Sul numero docs non viene visualizzato alcun avviso relativo alla modifica della priorità dopo l'avvio dell'operazione e non vengono menzionate eccezioni sollevate.
In effetti, la modifica della priorità di un'operazione in esecuzione non ha alcun effetto. Forse stai facendo qualcosa di sbagliato altrove?
Secondo Concurrency Programming Guide dovremmo essere in grado di modificare la priorità
For operations added to a queue, execution order is determined first by the
readiness of the queued operations and then by their relative priority.
Readiness is determined by an operation’s dependencies on other operations,
but the priority level is an attribute of the operation object itself.
By default, all new operation objects have a “normal” priority, but you
can increase or decrease that priority as needed by calling the object’s
setQueuePriority: method.
- 1. Modificare la priorità in una coda di priorità personalizzata
- 2. è bello() utilizzato per modificare la priorità del thread o la priorità del processo?
- 3. Modificare il livello di priorità in Log4j
- 4. Come modificare la priorità dei vincoli in fase di esecuzione
- 5. Come posso modificare la priorità di un messaggio in MSMQ?
- 6. Come modificare l'indirizzo email di un utente in modo "sicuro"?
- 7. Come posso modificare la priorità dell'azione in Wordpress?
- 8. Un modo più sicuro per mantenere la chiave di entità in una vista di modifica?
- 9. Coda priorità C++ per trovare e modificare gli oggetti
- 10. [NSOperazione cancelAllOperations]; non ferma l'operazione
- 11. Qualche modo per modificare la durata di zoomToRect per UIScrollView?
- 12. modo sicuro per disinstallare la vecchia versione di Python
- 13. Un modo sicuro per archiviare password decifrabili
- 14. È sicuro modificare una chiave/valore HashMap durante l'iterazione?
- 15. Codice non sicuro per modificare la lunghezza (tramite la mutazione!) Di un oggetto String?
- 16. Memorizza una password in modo sicuro
- 17. È un modo sicuro per cancellare una password?
- 18. Coda priorità doppia priorità
- 19. Posso impostare la priorità di un singolo thread sopra 15 per un normale processo con priorità?
- 20. Il modo più sicuro per ottenere la licenza del software
- 21. breve modo per scrivere l'encoder di priorità VHDL
- 22. In che modo la cache "Priorità" e "AbsoluteExpiration" funzionano insieme?
- 23. Modo sicuro per ottenere la password da PasswordField in JavaFX
- 24. Come passare una stringa C++ a JNI Java in un modo sicuro per thread sicuro?
- 25. modo sicuro per creare relativa java.io.File
- 26. Esiste un modo intelligente per dare ai messaggi priorità diverse?
- 27. Modo sicuro ed efficiente per modificare più file su sistemi POSIX?
- 28. C# è possibile modificare la priorità di acquisizione di un blocco?
- 29. C# perché sizeof non è sicuro e come ottenere dimensioni di una struttura in modo sicuro?
- 30. C'è un modo per impostare la priorità di caricamento delle immagini su un sito?
ci mostri la traccia dello stack e il contenuto della deroga? È un po 'difficile da diagnosticare al momento –