我正在进行一个使用以下技术的项目:
4.0)
)
目前,我正在使用代理生成的开始/结束方法异步调用我们的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
发布于 2011-12-20 15:36:48
您需要确保在实际的UI Dispatcher上调用,而不一定是Current。您可以尝试传递UI Dispatcher,或者有某种形式的回调,这些回调将在某个地方由UI处理。
https://stackoverflow.com/questions/8577872
复制相似问题