对于Silverlight应用程序,在启动时从服务加载数据的最佳方法是什么?

时间:2011-07-01 03:40:18

标签: silverlight wcf

我是Silverlight的新手。我有一个我正在处理的应用程序,在用户可以开始使用该应用程序之前需要来自服务器的一些数据。可以通过Web服务器上的WCF服务访问此数据。

我的问题是:在Silverlight应用启动时获取此数据的最佳方法是什么?

我认为用静态成员创建一个静态类,该成员将保存结果并在Application_Startup事件处理程序中调用WCF服务。我担心的是,如果这个调用是异步调用的,那么我怎么能确定在用户与应用程序交互之前从服务中检索数据呢?

由于

2 个答案:

答案 0 :(得分:2)

最简单的方法是让应用程序正常启动并使用BusyIndi​​cator控件阻止用户与应用程序交互。

您可以在启动期间调用您的服务,并在wcf调用返回后替换/禁用BusyIndi​​cator控件。

以下链接对启动Silverlight应用程序有一些好的建议: http://blogs.msdn.com/b/slperf/archive/2010/08/13/silverlight-startup-best-practices.aspx

答案 1 :(得分:1)

你需要记住,当Silverlight百分比栏出现时,实际上会加载Application_Startup方法,直到你到达:

this.RootVisual = new MainPage();

您可以放置​​一个忙碌的指示器或实际可视地显示您的应用程序。 所以我要做的是在Async回调中,我会显示:

this.RootVisual = new MainPage();
收到数据后

另一条评论谈到了使用BusyIndi​​cator,但你不能在App.Xaml或App.Xaml.cs文件中这样做,因为还没有主页。

由于