2

问题是....

该应用程序可能在 Silverlight 中。

可以实现 SYNChonous WebService 调用吗?

我尝试在 SL 中使用网格、编辑和使用 WebServices 来实现任何应用程序 RIA,但我不明白如何在没有 SYNC 调用的情况下使其成为可能。

而且我还需要使用 MODAL DIALOGS 来完成一些任务。

我调查了 Daniel Vaughan 的工作,他设法在 ThreadPool 中同步运行 Web 服务调用,但是我该如何做那个 GUI,等待对 Web 服务的调用?

丹尼尔沃恩网站:http ://danielvaughan.orpius.com/post/Synchronous-Web-Service-Calls-with-Silverlight-2.aspx

结合其他语言的这些基本内容,恕我直言,可以构建真正的应用程序。

听听建议...

切瓦。

4

2 回答 2

1

最好分析实际目标,因为您想在 GUI 中执行此操作,因此在获取或处理适当的资源之前阻止用户活动。

实现该目标的一种方法是进行同步调用,但这只会以用户不友好的方式锁定 UI。我们真正想要的是锁定 UI,但以提供信息的方式。事实上,我们希望 UI 线程以丰富的 UI 方式(一些动画或正在进行的进度)自由地显示这样的“请稍候,我正忙于处理您的请求”。

为此,您可以使用BusyIndicator控件(在其中放置全部或部分当前 UI)。您可以BusyIndicator在 Silverligt 工具包中找到 。如果您使用的是 VS2010 和 Silverlight 4,一个类似的控件现在是 Ria Services SDK 的一部分,并且可以称为Activity.

现在,当您想要做一些“同步”的事情时,您将BusyIndicator.IsBusy属性设置为 true(在 SL4 中您将设置Activity.IsActive为 true)。然后发出一个异步请求,在请求完成后将属性设置为 false。

于 2010-03-06T09:08:28.030 回答
0

无论好坏,Silverlight 都不支持对 Web 服务的同步调用。您最好的选择是采用类似于 Anthony 建议的方法,以便在您的 UI 中获得所需的最终结果,而无需实际锁定 UI 线程。

于 2010-03-07T06:17:56.397 回答