Nunca he usado la opción Puede dibujar concurrentemente mencionado en el constructor de iterface. Ver la imagen a continuación:¿Qué se puede dibujar simultáneamente constructor de interfaz?
Puede alguien explicar su uso y propósito?
Nunca he usado la opción Puede dibujar concurrentemente mencionado en el constructor de iterface. Ver la imagen a continuación:¿Qué se puede dibujar simultáneamente constructor de interfaz?
Puede alguien explicar su uso y propósito?
Se puede utilizar para informar de que su AppKit NSView
subclase -drawRect:
método de instancia puede ser llamado desde un subproceso secundario.
Es 10.6+. Cuando/si AppKit representa vistas de forma asincrónica, -drawRect:
se realiza utilizando bloques concurrentes, y su -drawRect:
se invocará desde una secuencia secundaria. Esto significa que la implementación de su subclase debe ser segura (por compatibilidad, está deshabilitada de manera predeterminada).
Consulte también -[NSView setCanDrawConcurrently:]
para obtener más información, porque se necesitan pocas cosas para permitir realmente este comportamiento. Además, no debe implicar que AppKit es seguro o que sus subclases NSView
están diseñadas para admitir esta funcionalidad. Está diseñado para su dibujo pesado.
La opción es para la vista que admite el dibujo con hilos, por ejemplo NSProgressIndicator
. Si se selecciona Dibujar concurrentemente, se puede invocar drawRect desde un hilo de fondo para esa vista. Consulte la referencia de clase NSView.
None of the AppKit's views support this (except for NSButton and NSProgressIndicator, but they have separate APIs for this for historical reasons).
Tenga en cuenta que a partir de OS X 10.8 y iOS 6.0, establecer la nueva propiedad 'drawsAsynchronously' en la capa de la vista puede proporcionar un rendimiento suficiente sin la complicación de hacer' drawRect: 'thread-safe. En OS X, necesitará usar una vista de capa para usar 'dibuja de forma asincrónica'. –
@robmayoff buen consejo +1. ¿Has medido esto por casualidad o has encontrado un buen artículo? He estado escribiendo renderizadores concurrentes threadsafe por un tiempo. me imagino que es un área que mucha gente querría evitar :) – justin
No he jugado con eso. El video * Optimización de gráficos 2D y rendimiento de animación * de [WWDC 2012] (https://developer.apple.com/videos/wwdc/2012/) lo analiza, comenzando alrededor de 31m24s. –