我是Silverlight的新手。我有一个我正在处理的应用程序,在用户可以开始使用该应用程序之前需要来自服务器的一些数据。可以通过Web服务器上的WCF服务访问此数据。
我的问题是:在Silverlight应用启动时获取此数据的最佳方法是什么?
我认为用静态成员创建一个静态类,该成员将保存结果并在Application_Startup
事件处理程序中调用WCF服务。我担心的是,如果这个调用是异步调用的,那么我怎么能确定在用户与应用程序交互之前从服务中检索数据呢?
由于
答案 0 :(得分:2)
最简单的方法是让应用程序正常启动并使用BusyIndicator控件阻止用户与应用程序交互。
您可以在启动期间调用您的服务,并在wcf调用返回后替换/禁用BusyIndicator控件。以下链接对启动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();
收到数据后。
另一条评论谈到了使用BusyIndicator,但你不能在App.Xaml或App.Xaml.cs文件中这样做,因为还没有主页。
由于