我正在开发一个项目,使用以下技术:
- C# (.NET 4.0)
- WCF
- PRISM 4
我目前正在使用代理生成的Begin/End方法对我们的Web服务进行异步调用。调用成功后,客户端能够在工作线程上接收到Web服务的响应。
一旦收到响应,我继续触发一个事件。订阅该事件的类使用PRISM请求UI导航:
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
this.RegionManager.RequestNavigate(RegionNames.LoginContentRegion, projectSelectionViewUri)));
由于异步 WCF 响应未在 UI 线程上捕获,我被迫使用 Application.Current.Dispatcher.BeginInvoke(...)
调用 UI 线程。
问题在于调用似乎没有任何作用。UI 没有更新,并且没有抛出异常。
如何从工作线程引发的事件中调用 UI 线程?
编辑:由于所谓的重复问题未提供答案,因此已将此问题重新提出,链接如下:
Request UI navigation using PRISM 4 on an asynchronous WCF response thread