Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Начал разрабатывать приложение для сильвера - столкнулся со сложностями асинхронного взаимодействия с сервером. Что почитать по этому поводу чтобы начать эффективно разрабатывать в асинхронной модели взаимодействия с сервером ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 21:17 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis., извиняюсь за оффтоп, но... а в чем конкретно сложности-то? даже в дремучем WinApi полно функций, которые принимают указатель на callback, и только в ём (коллбэке) и можно что-то делать с результатом выполнения функции... столь любимый ajax сегодня (хоть в виде jquery, хоть как) - та же самая архивная... вещь. Просто считай, что тебя известят о результатах... потом... в другом потоке... делов-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 22:04 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
злостный оффтопDenis., извиняюсь за оффтоп, но... а в чем конкретно сложности-то? даже в дремучем WinApi полно функций, которые принимают указатель на callback, и только в ём (коллбэке) и можно что-то делать с результатом выполнения функции... столь любимый ajax сегодня (хоть в виде jquery, хоть как) - та же самая архивная... вещь. Просто считай, что тебя известят о результатах... потом... в другом потоке... делов-то? Почему оффтоп. Это не оффтоп. Сложность вот в чем: Например я заполняю список неких айтемов, берущихся с сервера. На колбек вешаю заполнение списка и все ок. Затем мне от сервера опять нужен этот список, но чтобы заполнить не первый листбокс, а например другой. Как в колбеке я пойму какой лист заполнять? Я понимаю что есть множество решений, но стройного что то я не соображу. А хочется прочитать про типичный паттерн как это делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 22:09 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.А хочется прочитать про типичный паттерн как это делается. Паттерн называется Observer Велосипед называется Rx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 22:20 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
__ЛПDenis.А хочется прочитать про типичный паттерн как это делается. Паттерн называется Observer Велосипед называется Rx Причем тут обзервер? Про rx почитаю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 22:37 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.Причем тут обзервер? Именно при том. Denis.Про rx почитаю, спасибо. Да не за что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2010, 22:47 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Я вообще не понял проблемы. Предположим у нас в ViewModel есть Код: plaintext В асинхронном методе получения данных с сервера просто читаем ответ (e.Result) и пишем в эту коллекцию (Items), которая биндится в самом представлении (хоть декларативно, хоть в code behind). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Если нужно несколько вызовов сервиса + результаты в отдельные модели (или тупо кастом проперти в ViewModel), ради бога - оформляем свои Items1, Items2, ..., ItemsN и работаем с ними. В чём вопрос-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 00:19 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУ, Вопрос как раз в "Если нужно несколько вызовов сервиса + результаты в отдельные модели (или тупо кастом проперти в ViewModel), ради бога - оформляем свои Items1, Items2, ..., ItemsN и работаем с ними" Возьмем пример: есть набор неких айтемов. Я загрузил приложение, дернул с сервера этот набор, он отобразился в листе. Затем, например, я нажимаю некую кнопку, которая должна мне мессаджбоксом показать кол-во айтемов(на серввере), не обновив листбок прежде заполненный. Как это правильно делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 00:31 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.Как это правильно делается? Я же уже сказал - во вьюмодели. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А в представлении с этими данными (Items и Count) можете что угодно делать. P.S. Почитайте про паттерны MVVM или MVC (MVP). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 00:44 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУDenis.Как это правильно делается? Я же уже сказал - во вьюмодели. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А в представлении с этими данными (Items и Count) можете что угодно делать. P.S. Почитайте про паттерны MVVM или MVC (MVP). Про MVC и MVP я, конечно, в курсе. Про mvvm - представляю что это такое. тем не менее все же непонятно 2 момента: мне на "каждый вызов" удаленного метода создавать член класса? Как в удобочитаемой манере заюзать, в данном случае, Count, без синка потоков? Нечто вроде: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 00:53 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
вообще мне непонятно почему убрана синхронная модель :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 00:59 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.Про mvvm - представляю что это такое. Не представляете. Denis.мне на "каждый вызов" удаленного метода создавать член класса? Это Вы уже сами решайте, но ViewModel "должна быть в курсе", что Вы там дёрнули и что оно там вернулось, чтобы известить об этом представление. Denis.без синка потоков? Их не нужно синхронизировать, у нас полноценная асинхронная обёртка. Никаких костылей не нужно, всё, как Вы выразились, тривиально. Уже обсуждали про "синхронность SL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:00 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.вообще мне непонятно почему убрана синхронная модель :-( Читать от сюда: 9899156 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:02 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУDenis.Про mvvm - представляю что это такое. Не представляете. Denis.мне на "каждый вызов" удаленного метода создавать член класса? Это Вы уже сами решайте, но ViewModel "должна быть в курсе", что Вы там дёрнули и что оно там вернулось, чтобы известить об этом представление. Denis.без синка потоков? Их не нужно синхронизировать, у нас полноценная асинхронная обёртка. Никаких костылей не нужно, всё, как Вы выразились, тривиально. Уже обсуждали про "синхронность SL". Это все здорово при биндинге вью на вьюмодель, но вот когда никакого биндинга нет, а вызов сервиса используется в БЛ фактически все становится не так стройно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:02 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.Это все здорово при биндинге вью на вьюмодель, но вот когда никакого биндинга нет, а вызов сервиса используется в БЛ фактически все становится не так стройно Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:06 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУDenis.Это все здорово при биндинге вью на вьюмодель, но вот когда никакого биндинга нет, а вызов сервиса используется в БЛ фактически все становится не так стройно Код: plaintext 1. 2. 3. не, я не про то: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:11 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.не, я не про то: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Чё за бред? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:16 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУ, это не важно. Суть в том, как его переписать в асинхронной модели. Например !serviceProxy.TryFillDefaultItems(). Мне нужно вызвать асинхронный метод, в нем заполнить поле, созданное для него, в потоке текущего метода подождать коллбека и взять значение из члена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:25 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Простыми lookup'ами лучше не засорять основной ViewModel. Для них можно создать отдельный Locator(конвертер или markup extenstions), который будет делать выборку из БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:32 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Denis.МСУ, это не важно. Это важно. Во-первых, с точки зрения производительности, а во-вторых - нагрузки на сам сервер, где котором хостится сервис. Зачем дергать n-раз метод, если можно за один проход получить интересующую информацию. Будет возвращаться класс, содержащий в себе всю необходимую информацию для принятия дальнейшего решения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 01:36 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
Если уж надо раскидать по n-вызовам, то в чём проблема написать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 02:30 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУЕсли уж надо раскидать по n-вызовам, то в чём проблема написать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Не проблема, только лениво писать одно и тоже десятки раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 10:32 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
iНе проблема, только лениво писать одно и тоже десятки раз Согласен. И я про то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 13:27 |
|
||
|
Что почитать чтобы научится программировать в асинхронной манере.
|
|||
|---|---|---|---|
|
#18+
МСУiНе проблема, только лениво писать одно и тоже десятки раз Согласен. И я про то же. Ну, дык, для это же Rx и советовали, насколько я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2010, 17:18 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37039698&tid=1442524]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 187ms |

| 0 / 0 |
