【发布时间】:2012-01-24 13:25:55
【问题描述】:
我正在开发一个使用以下技术的项目:
- C# (.NET 4.0)
- WCF
- 棱镜 4
我目前正在使用代理生成的 Begin/End 方法对我们的一个 Web 服务进行异步调用。调用成功,客户端能够在工作线程上接收 Web Service 的响应。
收到响应后,我会继续引发事件。订阅事件的类继续使用 PRISM 请求 UI 导航:
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
this.RegionManager.RequestNavigate(RegionNames.LoginContentRegion, projectSelectionViewUri)));
由于未在 UI 线程上捕获异步 WCF 响应,我不得不使用 Application.Current.Dispatcher.BeginInvoke(...) 调用 UI 线程。
这里的问题是调用似乎什么都不做。 UI 没有更新,也没有抛出异常。
我应该如何从工作线程上引发的事件中调用 UI 线程?
编辑:此问题已在以下链接中重新提出,因为假定的重复项没有提供答案:
Request UI navigation using PRISM 4 on an asynchronous WCF response thread
【问题讨论】:
-
为什么这个帖子被关闭了。可能的重复不处理 WPF Windows,并且已经将近 3 年了,我知道这是一个常见的主题(站点范围),但可能的重复没有什么不常见的。
-
我同意 Ramhound...
标签: c# wpf multithreading wcf prism