monotouch - обновление данных локально - PullRequest
0 голосов
/ 18 мая 2010

В моем приложении мы сериализуем данные локально для автономного использования. Чтобы приложение всегда было в курсе, я запускаю обновление при запуске.

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

Проблема в том, что для их обновления может потребоваться некоторое время, и кажется, что они выглядят немного неуклюже.

Каков предпочтительный / рекомендуемый способ обновления из нескольких служб для достижения того, что мне нужно здесь?

Приветствия

ш: //

1 Ответ

0 голосов
/ 18 мая 2010

Для Cracklytics (http://cracklytics.com), а также для нескольких других корпоративных приложений, над которыми я работал, я выполняю два вызова службы параллельно, вместо того, чтобы делать один за другим.

Я потратил довольно много времени на тестирование производительности одновременных вызовов, двух сеансов, трех сеансов и т. Д., И я получил лучшие результаты при 2G и 3G, запустив 2 потока одновременно. В беспроводном режиме я мог запускать как 8-10 потоков вместе, и они работали бы очень быстро.

Помимо этих двух вызовов, Cracklytics также загружает несколько графиков из Google одновременно с этими двумя вызовами, но я не заметил какого-либо влияния на производительность.

Для реализации у меня есть один основной класс, который отслеживает все классы веб-сервисов и контролирует, когда они должны быть запущены и завершены.

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

Надеюсь, это поможет.

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