DispatcherPriority Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Describe las prioridades con las que se pueden invocar operaciones por medio de Dispatcher.
public enum class DispatcherPriority
public enum DispatcherPriority
type DispatcherPriority =
Public Enum DispatcherPriority
- Herencia
Campos
ApplicationIdle | 2 | El valor de enumeración es 2. Las operaciones se procesan cuando la aplicación está inactiva. |
Background | 4 | El valor de enumeración es 4. Las operaciones se procesan una vez completadas todas las demás operaciones no inactivas. |
ContextIdle | 3 | El valor de enumeración es 3. Las operaciones se procesan cuando las operaciones en segundo plano se han completado. |
DataBind | 8 | El valor de enumeración es 8. Las operaciones se procesan con la misma prioridad que el enlace de datos. |
Inactive | 0 | El valor de enumeración es 0. No se procesan las operaciones. |
Input | 5 | El valor de enumeración es 5. Las operaciones se procesan con la misma prioridad que la entrada. |
Invalid | -1 | El valor de enumeración es -1. Ésta es una prioridad no válida. |
Loaded | 6 | El valor de enumeración es 6. Las operaciones se procesan cuando el diseño y la representación han finalizado, pero justo antes de atender a los elementos que tienen la prioridad de entrada. Esto se usa específicamente al provocar el evento Loaded. |
Normal | 9 | El valor de enumeración es 9. Las operaciones se procesan con la prioridad normal. Ésta es la prioridad de la aplicación típica. |
Render | 7 | El valor de enumeración es 7. Las operaciones se procesan con la misma prioridad que la representación. |
Send | 10 | El valor de enumeración es 10. Las operaciones se procesan antes que otras operaciones asincrónicas. Ésta es la prioridad máxima. |
SystemIdle | 1 | El valor de enumeración es 1. Las operaciones se procesan cuando el sistema está inactivo. |
Ejemplos
En el ejemplo siguiente se llama al Dispatcher.BeginInvoke método y se pasa un delegado con un argumento. La prioridad se establece en Normal
.
// Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Normal,
new OneArgDelegate(UpdateUserInterface),
weather);
' Schedule the update function in the UI thread.
tomorrowsWeather.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal, New OneArgDelegate(AddressOf UpdateUserInterface), weather)
Comentarios
No hay ningún estado del sistema específico o "inactividad" correspondiente a ApplicationIdle
y ContextIdle
en la versión actual de WPF. Ambas siguen siendo prioridades válidas; una operación con una prioridad de ContextIdle
tiene una prioridad más alta que una operación con una prioridad de SystemIdle
.
no Dispatcher limita la ejecución de una operación si supera un porcentaje determinado de la CPU. Una manera de limitar un proceso es usar un temporizador.
Si una operación se publica usando Dispatcher.Invoke por sí misma Dispatcher en una prioridad de Send
, la operación omite la cola y se ejecuta inmediatamente.