问题是......
该申请可能在Silverligth。
可以实现SYNChonous WebService调用吗?
我尝试使用Grids,Edits和SL中的WebServices实现任何应用程序RIA,但我不明白如何在没有SYNC调用的情况下实现它。
我还需要使用MODAL DIALOGS来完成某些任务。
我调查了Daniel Vaughan的工作,他设法在ThreadPool中同步运行Web服务调用,但我如何能够执行该GUI,等待调用webservices?
Daniel Vaughan网址:http://danielvaughan.orpius.com/post/Synchronous-Web-Service-Calls-with-Silverlight-2.aspx
将这些基本内容与其他语言相结合,IMHO可以构建真正的应用程序。
听取建议......
Cheva。
答案 0 :(得分:1)
最好分析实际目标,因为您希望在GUI中执行此操作,以防止用户活动,直到获取或处理了相关资源。
实现这一目标的一种方法是进行同步调用,但只会以用户不友好的方式锁定UI。我们真正想要的是以一种信息丰富的方式锁定UI。事实上,我们希望UI线程可以自由地显示“请等待我忙于处理您的请求”,这是以丰富的UI方式(某些动画或正在进行中)的最佳方式。
为此,您可以使用BusyIndicator
控件(在其中放置全部或部分当前UI)。您将在Silverligt工具包中找到BusyIndicator
。如果您使用的是VS2010和Silverlight 4,则类似控件现在是Ria Services SDK的一部分,可以称为Activity
。
现在,当您想要执行“同步”操作时,将BusyIndicator.IsBusy
属性设置为true(在SL4中,将Activity.IsActive
设置为true)。然后发出异步请求,在请求完成后将属性设置为false。
答案 1 :(得分:0)
无论好坏,Silverlight都不支持对Web服务的同步调用。你最好的选择是使用与Anthony提出的类似的东西,以便在你的UI中获得所需的最终结果而不实际锁定UI线程。