Invocar un subproceso de IU de un subproceso de trabajo se analiza muchas veces y sabemos por qué utilizar BeginInvoke() en lugar de Invoke(). Recientemente publiqué this question y después de hacer algunas investigaciones descubrí que hay al menos tres formas diferentes (internamente podrían ser las mismas) de invocar (asincrónicamente) algo en el hilo de la interfaz de usuario.control.BeginInvoke() Vs Dispatcher Vs SynchronizationContext Vs .. - FIABILIDAD
Control.BeginInvoke()
- Usando
SynchronizatoinContext
Clase - Usando
Dispatcher.BeginInvoke(priority..)
Puede alguien decirme que es una forma segura de llamar a un método de forma asíncrona a ser ejecutado el hilo de interfaz de usuario. Cualquier experiencia ? Veo que Dispatcher.BeginInvoke tiene un componente de prioridad, ¿lo hace más confiable?
Contexto:
estamos utilizando someControl.BeginInvoke()
pero me di cuenta que a veces (por desgracia sólo en el entorno de producción usuario final) el delegado pasó a BeginInvoke is
no ejecutado, que me hace creer que el mensaje posterior que se crea es perderse. Queremos una forma confiable de volver a comunicarse con el hilo de UI. control.Invoke()
a veces cuelgan la IU, por lo que tampoco queremos ir allí.
No se debe confundir con WinForms WPF. – SLaks
Tengo un problema similar ... ¿por casualidad logró corregir el problema? –
mismo aquí, ¿alguna actualización? – Pedro77