有时我需要在Silverlight中调用WCF服务并阻止UI直到它返回.当然,我可以分三步完成:
设置处理程序和阻止UI
致电服务
一切都完成后取消阻止UI.
但是,我想将DoSomethingSync方法添加到服务客户端类,只需在需要时调用它.
可能吗?有没有人真正实现过这样的方法?
更新: 看起来答案根本不是使用同步调用.将为异步调用寻找一些易于使用的模式.看一下这篇文章(摘自评论)了解更多信息.
这就是重点; 你不应该在Silverlight中同步IO.停止战斗吧!代替:
禁用UI的任何关键部分
使用回调启动异步IO
(......)
在回调中,处理数据并更新/重新启用UI
碰巧的是,我正在积极研究如何使异步模式更加平易近人(特别是考虑到Silverlight).这是第一次刺伤,但我的袖子更好了;-p