同步Web服务和模态对话框!

时间:2010-03-06 06:43:15

标签: silverlight modal-dialog web-services synchronous dialog

问题是......

该申请可能在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。

2 个答案:

答案 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线程。