¿Existe una manera segura de cambiar la prioridad de una NSOperation que ya está en cola en un NSOperationQueue? Si la operación aún no ha comenzado, no hay problema, pero si ya se está ejecutando, obtengo una NSInvalidArgumentException.Manera segura de cambiar la prioridad de una NSOperation
Respuesta
Se supone que no debe alterar una NSOperation una vez que se ha puesto en cola. De acuerdo con Threading Programming Guide de Apple:
Importante: Nunca se debe modificar un objeto operación después de que haya sido añaden a una cola. Mientras esperaba en una cola , la operación podría ejecutarse en en cualquier momento. Cambiar su estado mientras se está ejecutando podría tener efectos adversos . Puede usar los métodos de el objeto de operación para determinar si la operación se está ejecutando, esperando a que se ejecute , o si ya terminó.
Enlace actualizado: http://developer.apple.com/library/mac/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html#//apple_ref/doc/uid/TP40008091 -CH101-SW38 –
@MichaelBaltaks - Gracias, actualizado. –
En el docs no hay ninguna advertencia acerca de no cambiar la prioridad después de que se haya iniciado la operación y no se menciona excepciones planteadas.
De hecho, cambiar la prioridad de una operación en ejecución simplemente no tiene ningún efecto. ¿Tal vez estás haciendo algo mal en otro lado?
Según Concurrency Programming Guide que debe ser capaz de cambiar la prioridad
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. Cambiar la prioridad en una cola de prioridad personalizada
- 2. manera segura (st) cambiar el nombre de un proyecto delphi
- 3. cambiar la prioridad del proceso en android
- 4. Cacao - Devolver información de NSOperation
- 5. Repriorización de la cola de prioridad (manera eficiente)
- 6. Rails 3 Engines: cómo cambiar la prioridad de sus rutas
- 7. ¿Cómo cambiar la dirección de correo electrónico de un usuario de manera "segura"?
- 8. tfs2010 - cómo cambiar la definición de compilación - prioridad de construcción
- 9. Cambiar la prioridad de subprocesos de subprocesos en Windows
- 10. ¿La mejor manera de almacenar orden de clasificación/prioridad?
- 11. cambiar el nivel de prioridad en Log4J
- 12. ¿Cómo puedo cambiar la prioridad de un mensaje en MSMQ?
- 13. ¿Es esta una manera segura de iniciar una [ThreadStatic]?
- 14. Pause NSOperation
- 15. Java/Scala obtiene una referencia de campo de manera segura
- 16. es bueno() usado para cambiar la prioridad del hilo o la prioridad del proceso?
- 17. Manera segura de almacenar contraseñas descifrables
- 18. punteros que regresan de una manera segura para los subprocesos
- 19. En Perl, ¿cómo creo de manera segura una FIFO temporal?
- 20. Django: ¿cómo hacer get_or_create() de una manera segura?
- 21. Manera segura de leer directorio en Python
- 22. ¿Hay una manera segura en la Scala de transponer una lista de listas de longitud desigual?
- 23. Cambiar prioridad del proceso actual en C
- 24. Cambiar la prioridad del proceso en Python, multiplataforma
- 25. ¿Manera segura de recuperar o reiniciar la contraseña?
- 26. métodos asincrónicos en NSOperation
- 27. ¿Cómo hago una NSURLConnection Asychronous dentro de una NSOperation?
- 28. ¿Cuál es la mejor manera de publicar de forma segura una compilación de publicación de sitio?
- 29. Usando NSThread dormir en una NSOperation
- 30. NSURLConnection asincrónico y NSOperation - cancelando
nos muestras el seguimiento de la pila y el contenido de la excepción? Es un poco difícil de diagnosticar en este momento –