Estoy trabajando en un proyecto que utiliza las siguientes tecnologías:Cómo invocar un método en el subproceso de interfaz de usuario desde dentro de un subproceso de trabajo?
- C# (.NET 4.0)
- WCF
- PRISM 4
actualmente estoy haciendo una llamada asincrónica a uno de nuestros servicios web utilizando los métodos Begin/End generados por un proxy. La llamada fue exitosa y el cliente puede recibir la respuesta del servicio web en un hilo de trabajo.
Una vez que se recibe la respuesta, procedo a plantear un evento. La clase suscrito al evento procede a solicitar una navegación de interfaz de usuario mediante PRISM:
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
this.RegionManager.RequestNavigate(RegionNames.LoginContentRegion, projectSelectionViewUri)));
Puesto que la respuesta WCF asíncrono no se captura en el subproceso de interfaz de usuario, que estoy obligado a invocar el hilo de interfaz de usuario mediante Application.Current.Dispatcher.BeginInvoke(...)
.
El problema aquí es que la invocación parece no hacer nada. La interfaz de usuario no se actualiza y no se lanza ninguna excepción.
¿Cómo debo invocar el subproceso de interfaz de usuario desde un evento que se genera en un subproceso de trabajo?
Editar: Esta pregunta ha sido re-pedido en el siguiente enlace, ya que la supuesta duplicado no proporciona una respuesta:
Request UI navigation using PRISM 4 on an asynchronous WCF response thread
¿Por qué se cerró este hilo? El posible duplicado no trata con WPF Windows, y tiene casi 3 años, entiendo que este es un tema común (en todo el sitio) pero el posible duplicado como NADA de Incommon. –
Estoy de acuerdo con Ramhound ... –