Проблема с загрузкой данных асинхронно - PullRequest
0 голосов
/ 06 сентября 2010

Наше приложение загружает большое количество данных при запуске.Требуется большая часть данных для всех операций.Вот проблема: некоторые операции могут быть выполнены только после загрузки данных.Поскольку он загружается асинхронно, большинство пользовательских действий выдают исключение.
Я пробовал AutoResetEvent.WaitOne (), но это не работает правильно .

Что можно сделать, чтобы избежатьЭто?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2010

Это не проблема Silverlight, это универсальная проблема производителя / потребителя.

В зависимости от конкретной среды и особенностей вашего приложения, существуют разные подходы к нему. Если получение данных происходит ОЧЕНЬ быстро, и вам нужно только потреблять 1 единицу определенного типа данных, то у вашего потребителя вы можете опрашивать флаг, который вы меняете после получения данных. Или вы можете предоставить производителю функцию / метод для вызова после заполнения данных. Таким образом, вы отправите данные в модуль, который отображает только то, что доступно.

Более сложные примеры будут включать в себя организацию очередей и сигнализацию, но с этого следует начать.

0 голосов
/ 06 сентября 2010

Предоставьте свои данные через службу, а также предоставьте индикатор того, загружаются ли данные, загружены, не могут быть загружены и т. Д. Ваш пользовательский интерфейс может затем использовать этот индикатор для определения доступности элементов пользовательского интерфейса (обычно с помощью команд ).

Вы, конечно, не должны блокировать свой пользовательский интерфейс до тех пор, пока данные не загрузятся - это противоречит самой цели того, что вы вынуждены делать это асинхронно в первую очередь. Вместо этого ваш пользовательский интерфейс должен реагировать в соответствии с доступностью данных по мере загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...