Sto lavorando su un progetto che utilizza le seguenti tecnologie:Come richiamare un metodo sul thread dell'interfaccia utente da un thread di lavoro?
- C# (.NET 4.0)
- WCF
- PRISM 4
Attualmente sto facendo una chiamata asincrona a uno dei nostri servizi Web utilizzando i metodi Begin/End generati da un proxy. La chiamata ha esito positivo e il client è in grado di ricevere la risposta del servizio Web su un thread di lavoro.
Una volta ricevuta la risposta, procedo a generare un evento. La classe sottoscritto l'evento procede richiedere un Prism navigazione UI utilizzando:
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
this.RegionManager.RequestNavigate(RegionNames.LoginContentRegion, projectSelectionViewUri)));
Poiché la risposta asincrona WCF non viene catturato nel thread UI, sono costretto a richiamare il thread UI utilizzando Application.Current.Dispatcher.BeginInvoke(...)
.
Il problema qui è che il richiamo sembra non fare nulla. L'interfaccia utente non viene aggiornata e non viene generata alcuna eccezione.
Come dovrei richiamare il thread dell'interfaccia utente all'interno di un evento che viene generato su un thread di lavoro?
Edit: Questa domanda è stato ri-chiesto al seguente link, in quanto il presunto duplicato non fornisce una risposta:
Request UI navigation using PRISM 4 on an asynchronous WCF response thread
Perché questo thread è stato chiuso. Il possibile duplicato non ha a che fare con Windows WPF, e ha quasi 3 anni, ho capito che questo è un argomento comune (a livello di sito) ma il possibile duplicato come NOTHING incommon. –
Concordo con Ramhound ... –