Я новичок в Silverlight. У меня есть приложение, над которым я работаю, которому требуются некоторые данные с сервера, прежде чем пользователь сможет начать работу с приложением. Эти данные доступны через службу WCF на веб-сервере.
У меня такой вопрос: как лучше всего получить эти данные при запуске приложения Silverlight?
Я думал, что нужно создать статический класс со статическим членом, который будет хранить результаты, и сделать вызов службы WCF в обработчике событий Application_Startup
. Меня беспокоит то, что если этот вызов выполняется асинхронно, как я могу быть уверен, что данные будут получены из службы до того, как пользователь будет взаимодействовать с приложением?
Благодарность
2 ответа
Вы должны помнить, что метод Application_Startup фактически загружается, когда появляется процентная полоса Silverlight, а не до тех пор, пока вы не доберетесь до:
this.RootVisual = new MainPage();
Что вы можете поставить индикатор занятости или фактически визуально показать свое приложение. Итак, что бы я сделал, это при обратном вызове Async, я бы затем отобразил:
this.RootVisual = new MainPage();
После того, как вы получили свои данные обратно.
Другой комментарий говорит об использовании BusyIndicator, но вы не можете сделать это в файле App.Xaml или App.Xaml.cs, поскольку на данный момент главной страницы еще нет.
Благодарность
Самый простой способ - позволить приложению запуститься в обычном режиме и использовать элемент управления BusyIndicator, чтобы запретить пользователю взаимодействовать с приложением.
Вы можете вызвать свою службу во время запуска и заменить/отключить элемент управления BusyIndicator после возврата вызова wcf. По следующей ссылке вы найдете несколько полезных советов по запуску приложения Silverlight: Http://blogs.msdn.com/b/slperf/archive/2010/08/13/silverlight-startup-best-practices.aspxПохожие вопросы
Новые вопросы
silverlight
Silverlight - кросс-браузерный, кроссплатформенный плагин Microsoft для работы со СМИ и многофункциональных интерактивных приложений.